Unit tests

Adds unit tests. Fixes issue #1.

Notes: 

- Modularized and documented helper functions
- Global `tasks` variable still maintains tasks registry, and is passed as a parameter and manipulated by reference by modules as necessary
- Three test specs in `test/load-subfile-spec.js` are left unimplemented due to implementation complexity
- Added [lodash](http://lodash.com/docs) as a runtime dependency to standardize type validation
- Hand-verified that `examples/gulpfile.js` produces the same output as master
Test environment is using:

- `mocha` as the test runner
- `should` for assertions
- `proxyquire` for dependency proxying
- `sinon` for spies