WIP Add component template support

@bajtos - this is a work in progress. It combines the approach we discussed yesterday (copying over raw files) with the existing approach (using the workspace API itself). I'm fairly happy with the result.

Before I finish this up, I'd like your feedback or any gotchas you might see with this approach. If all is well I can take a final pass including the following:

 - cleanup references to `empty` template in the tests (eg. `givenEmptyWorkspace()`
 - add tests for each template to ensure the entities are available once created
 - add tests that check if the static files were copied to the correct place

If you happen to make progress on the ID reworking, I can also rework any dependencies of the templates before landing this. Right now it uses `componentName`, `modelName` and other `name` foreign keys.
Since there will be two entities - `ModelDefinition` and `ModelConfiguration`, I guess there should be two arrays in the template: `componentModelDefinitions` and `componentModelConfigurations`. The latter can copy the structure of `models.json`.

```js
template.componentModelConfigurations = {
  _meta: { sources: ['../models', './models'] },
  user: { dataSource: 'db' }
};