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.
I would not call it extend, as it is not calling `Model.extend`.

What I mean: as long as you are happy with the built-in user, you don't have to create `user base: User`.

But once you need to add more properties, or other stuff not supported by `models.json`, you need to create your `user` model.

It would be best if you could look at `registry.createModel` and `registry.configureModel` in loopback to get better understanding.