Add exec support to components
Implement the discovery API
Merge pull request #54 from strongloop/feature/discovery

Implement the discovery API
Revert exec support
Merge pull request #61 from strongloop/fix/templated-files

Fix copying of static files
Omit extra properties from json files

Fix ComponentDefinition.saveToFs to remove extra properties before
writing json files (config, models, datasources).
Fix `name` in the root `package.json`

Fix `Workspace.createFromTemplate` to set the root package name
to the value supplied by the user, instead of hard-coded `.`.
Fix serialization of component models

The `models.json` should contain only models of the current component.
Move restApiRoot from api-server to server

The root project does not have an app to load config.json.

The configuration of REST API endpoint belongs to `server` component,
because that's the component registering all different sub-apps.
Omit json config files in the root component

The `api-server` root component should not include the following files,
since there is no `app` to read them during boot:
 - config.json
 - datasources.json
 - models.json
templates: clean up + upgrade to loopback-boot 2.0

 - Include `loopback-boot 2.x` in the root `package.json`

 - Include express 4.x middleware packages in the root `package.json`

 - Drop `email` datasource. It is no longer needed, since loopback-boot
   does not call `loopback.autoAttach`.

 - Rename model names in `rest/models.json` to reference the built-in
   loopback models. Make internal models like `AccessToken` not public.

 - Refactor the `server` template to use the boot-based registration of
   middleware (see loopback-example-full-stack).
Mark all `componentName` properties as required.
Implement Workspace.isValidDir

A basic implementation that checks whether all components can be loaded
and whether there is at least one component present.
Merge pull request #63 from strongloop/more-yeoman-changes

More yeoman changes
Implement a hook for custom of `cp -r`

Wrap the call of `ncp` in `Workspace.copyRecursive` to allow
API consumers to provide their custom implementation, e.g.
yeoman's `directory` action.
Merge pull request #69 from strongloop/workspace-round-two

Implement a hook for custom of `cp -r`
test: implement end-to-end tests

Add two basic end-to-end tests checking that the User model and
the authentication are correctly set up by the template.
test/end-to-end: implement caching of npm packages

Speed up subsequent runs of unit-tests by caching the result of
`npm install`.
test: Increase `npm install` timeout

Increase the timeout to 120s to prevent the end-to-end tests from
timeouting on the CI server.
Merge pull request #70 from strongloop/e2e-tests

test: implement end-to-end tests