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
Yep :-(

Even without these specs though, this PR should get you to 90+% test coverage :)