Add ability to create full project structure using `bem create` commands

- Add `project` level prototype
- Add `project ` techs that should be used to create projects as a level with `project` level prototype
- Add `level` tech module to be used as a base for the techs to create levels
- Add `blocks` and `bundles` tech modules that should be used to create blocks and bundles level respectively
- Add `Level.getTypes()` function that should return array of level type strings
- Refactor `util.findLevel()` to respect `Level.getTypes()` result
Add `docs` level prototype; add `docs` tech to `project` level prototype
project tech: Create node_modules/ folder on bem create
project tech: Create docs level prototype on bem create
project tech: Update jsdoc of createProject() method
project tech: Declare bemjson.js tech in bundles level prototype on bem create
project tech: Declare tech-docs tech in blocks level prototype on bem create
project tech: Declare blocks tech in bundles level prototype on bem create
project tech: Do not depend blocks level prototype creation on bundles level prototype creation
project tech: Create tech-docs level prototype on bem create
project tech: Update jsdoc of createProject() method
Slightly refactor `bem create level` command

- Move validation of level prototype logic to the `COA.Opt.val()` method
- More promisy-based code
- Code cleanup
- Updated reference legacy-tests results
Use promisy function to write level .js module
Add ability to `bem create level` command to create level .js modules
Merge pull request #394 from bem/bem-create-project

Ability to create full project structure using `bem create` command