Merge pull request #5 from cubejs/cluster3

rebase
implement nanny protection to avoid run away workers
implement nanny protection to avoid run away workers, readme
+ just refactorings, reduce the require used upfront in master.js, as some only needed by master alone.
+ fix #run, mainly for testing smaller granualities which depends on cluster environment (caching, emitter, status etc.)
refactorings, documentations for index#listen
Merge pull request #38 from inexplicable/cluster3

Cluster3 nanny feature
Update master-test.js
updates
~ allow require('cluster2/cache') to work, otherwise has to be require('cluster2/lib/cache')
Merge pull request #44 from inexplicable/cluster3

Cluster3
~ make deathQueue monitorable
~ bugfix and refactorings
~ gc assertion uses 'pauseMS'
~ allow 'pids' path to be overwritten, from cmd argv or params
~ rename dead worker's pid files, to exclude them from shutdown screening
Merge pull request #45 from inexplicable/cluster3

Cluster3
~ don't require 'getLogger' explicitly
~ prevent multiple caching request
Merge pull request #46 from inexplicable/cluster3

Cluster3
+ moved shutdown to top level
+ added 'ensureDir' to logger init
~ shutdown script update