* The apos object is now a standard node EventEmitter
* addDiffListener replaced with a 'diff' event posted via the event emitter
* All tasks post before and after events
* Listeners for events like task:apostrophe:migrate:before or :after can call apos.taskBusy to signify they are going to do async work after returning, and must then call apos.taskDone when the work is done
* Listeners can also call apos.taskFailed to signal that the process exit code should not be 0
* Tasks do not exit until all listeners that called apos.taskBusy have called apos.taskDone
Merge branch 'master' of github.com:punkave/apostrophe