Nodemon refactor & JSON config

* [x] Ready to be merged

**To start experimenting with this build:  `npm install -g nodemon@dev` and please leave feedback & file issues**

This is the start of a complete restructuring of nodemon's source code, since currently it's a massive one script which can be difficult to test (and frankly the tests are limited right now) and difficult to contribute to.

So I'm breaking all the functionality down to small modules.

Key features of the new work:

* [x] All modules are testable and *have* tests
* [x] JSON support looking for `nodemon.json` with overriding defaults kept in `~/nodemon.json`. The JSON file will allow for all command line options to be stored in JSON
* [x] Better, safer, parsing of command line args
* [x] Supports old style nodemon ignore files
* [x] Update readme with new config
* [x] Test, test, test!
* [x] Mac tested
* [x] Linux tested (ubuntu)
* [x] Windows tested

The whole code base is getting gutted, but I'm wary of making sure that the actual code gets carried across (because I know there's been a lot of fixes for Windows and edge cases).  

Right now, the code is not in a good state, I'm still the file up, but I'm up for contributions, particularly to test modules.

I'm using @mwbrooks' and @filmaj's slides from their experience building the Cordova & PhoneGap CLI as inspiration: http://michaelbrooks.ca/deck/2013-node-brigade/

### Addition feature checklist

* [x] execmap ref: #195
* [x] debug flag (to show what nodemon is doing)
* [x] only eats nodemon arguments, and ignores all after user script ref: #181 
* [x] ignore files via the command line (in addition to config), ref #172
* [x] nodemon module require'able
* [x] user script extension takes priority as to what program is used as exec, ref #202
* [x] when using --exec don't try to detect the script, ref #216
* [x] ignores .git and node_modules/**/node_modules by default, ref #230