Api v2

initiate the pull request for this refactoring.

https://gist.github.com/87550fd10b7440a37df4

**todo**

- complete the test suite
- make it pass
- ensure previous suite still passing
- rince and repeat

The goal is to make it easier to integrate with third parties, and flesh out the API to consume generator (not the api available in Generators). This is mostly about rewriting https://github.com/yeoman/generators/blob/master/lib/generators.js, which is the module entry point.