good work

* modules use `Object.create(...)` instead of `new Module(...)`
* modules export factoris which are passed the adminion objects
* module instances are event emitters which emit 'ready' when initilized
* module caches are private, modules have public methods only.