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
Again, just added `lodash` as a runtime dependency, but it's only being used at runtime for its `_.is*` type validation functions.