Export RelationClasses

Without this being exported, it was impossible to define custom
relation types. However, there are still limitations - not all helper
methods are public to really handle this scenario.
Scope method should return cached relation value (sync)
hasMany through - sync scope getter
hasOne - test sync scope getter
polymorphic hasMany - test sync scope getter
hasAndBelongsToMany - test sync scope getter
embedsMany - implement sync scope getter
Test .value() method - as used by scope getter
Enforce id (prevent user-set value), fix isNewRecord
More fixes/tests
DAO save() now uses isNewRecord()
Tiny fixes
Fix multi-property validation definitions

Fixes #291, as introduced by me ...
https://github.com/strongloop/loopback-datasource-juggler/commit/6fae8c7
27759256157bf7ccd82e04ee372a59088
Merge pull request #292 from fabien/fix/refactor-validations

Fix multi-property validation definitions
Merge pull request #287 from fabien/fix/tiny

Export RelationClasses
Only check id as part of embedsMany relation
More tests for embedsMany with persistent model
Introduce embedsMany persistent: true option

When set, instead of only embedding the model (on creation) it will be
persisted first, and subsequently embedded.
Implemented persistent: true option for embedsOne
Allow embedsOne to use auto-generated id (from connector)

If the connector has a `generateId` method - like Transient - it can be
used to set the id (when the property has been set to `generated:
true`).