Prevent an app name of `test`.

Related to #232, initial PR by @rjackson.

+ prevents the application to be named `test`
+ introduces new helpers `stubPath` and `stubBlueprint`
+ refacators `generate` test
+ adds tests for `init` and `new` commands
+ changes `npm test` command to make sure we run `unit/commands` tests
+ adds an entry to CHANGELOG