fix skipping async validator will always fail if condition is un-fulfilled

If the validator configured with `{async:true}` option and `if/unless`
condition, validator should be skipped when the condition is un-fulfilled,
so the validator should be pass.

But currently, when skipping the validator, it calls `done(true)` which
accepts a `fail` flag as a param, this will fail the entire validation.

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
Be explicit: set RelationDefinition multiple flag
fix embedsOne error when embed instance is undefined or null

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
Merge pull request #357 from fabien/fix/rel-multiple

Set RelationDefinition multiple flag
Update README.md
add hooks module
add pre& post test
Merge remote-tracking branch 'upstream/master' into feature-hooks
docs.json: add lib/model.js
Fix a typo
Allow more flavors of nullable values from DB discovery
Merge pull request #354 from clarkorz/fix/skip-validation

fix skipping async validator will always fail if condition is un-fulfilled
Merge pull request #360 from clarkorz/fix/embedsOne-errors

fix embedsOne error when embed instance is undefined or null
Merge pull request #364 from strongloop/feature/include-base-model-in-apidocs

docs.json: add lib/model.js
Relax the id comparison
v2.12.0
Merge branch 'release/2.12.0' into production
Merge tag 'v2.12.0'

2.12.0

 * Relax the id comparison (Raymond Feng)

 * Allow more flavors of nullable values from DB discovery (Raymond Feng)

 * Fix a typo (Raymond Feng)

 * docs.json: add lib/model.js (Miroslav Bajtoš)

 * Update README.md (Rand McKinney)

 * fix embedsOne error when embed instance is undefined or null (Clark Wang)

 * Be explicit: set RelationDefinition multiple flag (Fabien Franzen)

 * Allow hasOne relation to have a scope option (Clark Wang)

 * fix skipping async validator will always fail if condition is un-fulfilled (Clark Wang)
Fixed the haversine formula to calculate distance between 2 points properly
renamed intermediary variable