DataSourceDefinition: handle unknown connector

Add a static version of `testConnection` that can be used without
persisting the definition.

Fix the implementation to handle the case where the connector specified
in the definition is not installed in the project using
loopback-workspace.
Merge pull request #110 from strongloop/feature/test-connection-improvements

DataSourceDefinition: handle unknown connector
package: update fs-extra

The version v0.11 fixes the issue of missing EOL at EOF when writing
a JSON file.
Merge pull request #112 from strongloop/feature/update-fx-extra

package: update fs-extra
DataSourceDefinition: fix remoting metadata

Fix a typo in testConnection remoting metadata.
models: make PackageDefinition public
Merge pull request #113 from strongloop/feature/export-package-definition

models: make PackageDefinition public
test: increase timeout for `npm install`
facet: use a static version of getUniqueId

Remove an unnecessary call of `new ModelDefinition`, pass the definition
data directly to `ModelDefinition.getUniqueId`.
Definition.addToCache: remove related models

When adding a definition to datasource cache, data of the related models
embedded in the configuration must be removed.

See strongloop/loopback-datasource-juggler#242
WorkspaceEntity.getFromCache: improve error msg

Catch JSON syntax errors and add model name & id to the error message
thrown.
Add name validations

ModelDefinition.name, PackageDefinition.name and ModelProperty.name
must not contain special characters.

Fix remoting metadata of Workspace.createFromTemplate.
Add public property to model config definition
Merge pull request #117 from strongloop/fix/public

Add public property to model config definition
3.1.1
3.1.2
Merge pull request #114 from strongloop/feature/fix-ci-build

fix CI build
Merge pull request #115 from strongloop/feature/improve-validations

Add name validations
Definition: fix loadToCache to return `id`

Fix the bug introduced by 47837ff where `Definition.loadToCache`
no longer returned the id of the created instance. That caused
`Facet.loadIntoCache` to throw because facetId was undefined.
DataSourceDefinition: prevent double callback