Previously, multiple copies of the watchers started from the different
shells would run simultaneously, which left the possiblity of zombie
watchers, increased resource consumption, and incorrect results. This
fixes that problem by only starting a watcher if that same command isn't
already in the process list.
Fixes LMS-499
When running under watchmedo, coffee doesn't display any useful
information when it recompiles a changed file, so we make watchmedo echo
that information instead.
Using `ulimit -n` to set the limit much higher than the default of 256
in Darwin seems to avoid the `EMFILE` error that was plaguing our Mac
developers.
The preprocess task requires system and env arguments in order to
correctly load up the django environment to preprocess sass files to
inject themes.
In order for that task to recieve the arguments, all tasks that depend
on it also have to accept that same set of arguments.
This will all go away once the next evolution of themes arrives, which
will remove the preprocessing needed to inject theme names.