Use built-in rakelibdir feature

Rake by default imports all .rake files in the rakelib dir, so we can
use that rather than doing our own import loop.
Provide instructions of ruby imports fail in rake

`rake install_prereqs` requires a minimal level of ruby and rake already
installed. If it doesn't exist, then print out a helpful message
indicating next steps.
Add system and env arguments to asset tasks

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.
Switch to standard coffee watcher

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.
Make coffee watch message more informative

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.
Don't delete generated files from xmodule-assets

xmodule-assets creates coffeescript files in the output directories. On
its next run, it used to delete the javascript files compiled from those
coffee files. Now it doesn't which should make coffee have to do less
work.

Fixes LMS-451
Only write to xmodule asset files that have changed

Use md5 checksumming to verify that we only write out xmodule asset
files whose contents differ from what we are about to write. This
minimizes thrashing of the other watchers.

Fixes LMS-452
Make assets watchers run as singletons

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
Merge branch 'cale/singleton-watchers' into cale/stabilize-dev-env

Conflicts:
	CHANGELOG.rst
Merge branch 'cale/standard-coffee-watch' into cale/stabilize-dev-env

Conflicts:
	CHANGELOG.rst
	rakelib/assets.rake
Merge pull request #174 from edx/cale/stabilize-dev-env

Cale/stabilize dev env