Cleanup Directory Structure

This should clean up the directory structure to make it a bit more node-like and subsequently approachable to take a look at the code.

Mainly;
- move all Classes into `./lib/`
- add `index.js` to `./util/` so that we can replace `require('./util/util')` with `require('./util')`.
- moves monkeypatches into `./patches`.  We should consider eliminating these, or merging them upstream, where relevant.