More yeoman changes

 - Omit extra properties from json files
 - Fix `name` in the root `package.json`
 - Fix serialization of component models
 - Move restApiRoot from api-server to server
 - Omit json config files in the root component
 - templates: clean up + upgrade to loopback-boot 2.0
 - Mark all `componentName` properties as required.
 - Implement Workspace.isValidDir

/to @ritch please review
We are not generating any `config.json` file.

I also don't like that `config.json` is embedded in `ComponentDefinition`, since `config.json` does not contain anything related to component definition. Instead, it contains arbitrary component configuration used by the component itself.