hybridgroup/cylon — pull request #179 by stewart (2014-05-14 02:32:03+00:00)
Title: Remove node-namespace and class cruft

This PR removes `node-namespace` from Cylon, and dramatically reduces class cruft introduced in the transition from CoffeeScript to plain JavaScript.

Additionally, this PR significantly overhauls the core of the Cylon module, replacing the `Cylon.Master` singleton with a simple JS object that will never be duplicated, due to Node's caching of required modules.

This PR also requries changes in _all_ Cylon adaptors before it can be released. Whereas previously child modules could rely on `Cylon.Adaptor` or `Cylon.Driver` being present in the global namespace, now they'll have to manually require Cylon to access it.

e.g.

```javascript
var Cylon = require('cylon');

var SpheroAdaptor = function SpheroAdaptor();

subclass(SpheroAdaptor, Cylon.Adaptor);
```

This also gives us an excuse to clean up the similar class cruft in all of those modules. When all this is done, a new release of Cylon + adaptor modules can be cut.

I've left the Logger and Utils in global namespace for now, Utils because it makes sense for the utility function and Logger because I'm not sure what the best thing to do with it is yet.

I'm comfortable with this PR sitting around for a while for discussion, so please nitpick.