Ft path options

## Changelog

**Generator Changes**
* Add `options.json` to define options with [Yeoman options](http://yeoman.io/authoring/user-interactions.html)
* Refactor `init` -> `constructor` to make options definition available to `yo gulp-angular --help`
* Add `mock-options.js` because `options` is almost equal to `prompts`, with a defaults value to make it similar to `prompts`, for easy use in tests.
* Add utils.js
* Add a property to `props`: `props.paths` is a hash, where keys are folder in generator template & value are dest folder for generated app.
```
  {
    `src`: `public`,
    `e2e`: `tests/e2e`,
    `tmp`: `.tmp`,
    `dist`: `dist`
  }
```
* Use `utils.replacePrefix()` for each dest str in `write.js`

**Tempate changes**
* All static paths are replaced with template variables or gulp variables.
* Gulp refers to `.yo-rc.json` to get paths data.

**Test Changes**
* Changes some structures in tests to accept different options for each case.
* Fix test suite message, differentiate between options & prompts. Options are flags: `--skip-install`, `--app-path=...`, prompts are questions.
* Add 1 case for `test-gulp-task-inception.mocha.js` with different paths.
* Add 1 case for `test-files-generate.mocha.js` with different paths.
* Add `tests-utils.js`.
* Update `README.md`.

* Commits are already squashed & rebased to master, all protractor tests also passed.

Further refactor:
* There is now options for each case so `test-options.mocha.js` should just be merged into test-files-generate.mocha.