Explicitly track readiness of worker processes

* worker.ready() and `ready` event indicating when a process is ready to
  accept jobs

* Proxy worker and job events through Pool

* Method to pre-spawn all worker processes

* Attempt to spawn new worker when all workers are busy

* Assign IDs to most objects, handy for debugging

* Reworked & new tests to account for `ready` event

* Add node v0.10.x to travis test matrix

* Misc refactorings
Events & listeners overhaul

* Version bump to v0.4.0

* New WorkerProcess events that narrate worker state
    * 'initializing', 'ready', 'working', 'recovering', 'exiting'

* Pool `drain` event renamed to `idle`

* Pool.spawnWorkers now takes a callback.

* Everything runs on events & listeners, no more tangled method calls
  between Pool / Job / WorkerProcess

* Misc cleanup & simplifications