Extract method actions.initWorkspace
test: remove `id` from acl entries
model: support undefined answers.propertyName

Treat undefined/null answers.propertyName in the same way as an empty
string, i.e. meaning "no more properties to create".

This makes it easier to call the model generator from tests and other
generators.
test: fix tests depending on race condition

Move the call of `resetWorkspace` to the first `beforeEach` hook.
example: Initial implementation

Implement `yo loopback:example` that scaffolds `sls-sample-app` using
a series of `yo loopback:*` calls and loopback-workspace API calls.
example: Update demo datasource config

Use `DEMO.PRODUCT` instead of `BLACKPOOL.PRODUCT` as the Oracle table
backing the `Car` model.

Fix the hard-coded location id in index.html.

Based on: strongloop/sls-sample-app@8ce02e1a2
example: fix database mappings

Use lower-case table/collection names (`customer` for `Customer)
for MySQL and MongoDB.
example: add sample data generator
example: implement nearby query

Add "geo" datasource providing access to Google Maps REST API `geocode`.

Add `Location.beforeSave` hook to add a geo code for the address.
example: fix indentation and jshint warnings
example: scaffold rest-api tests

Add `test/end-to-end/example.e2e.js` to scaffold the example app
and run the generated tests against memory datasource.

Add `npm run testdb` script to run the generated tests against all
supported datasources (memory, mongodb, mysql, oracle).
app: fail in an non-empty directory

loopback-workspace is not able to apply a template to an existing
project, such operation fails with unique-constraint violations.