Basic plugin architecture

Similar to http://mongoosejs.com/docs/plugins.html

Next, loopback-boot should be updated to support loading plugins from
dirs.
Minor touch-ups
Fix typo: loadPlugin(s)
Unified plugins into mixins

Mixin types: module function, module object, LDL json object.
Merge branch 'feature/plugins' of github.com:fabien/loopback-datasource-juggler into fabien-feature/plugins
Clean up the mixin processing
Add scope definitions to the model class

See https://github.com/strongloop/loopback/issues/454
Pass options into scope
Merge branch 'fabien-feature/plugins'
Bump version
Fix the test case so that it works with other DBs
Merge branch 'release/2.3.0' into production
Merge tag 'v2.3.0'

2.3.0
Fix a name conflict in scope metadata
Merge branch 'release/2.3.1' into production
Merge tag 'v2.3.1'

2.3.1
Cleanup mixin tests
Refactor modelTo logic into lookupModelTo
Merge branch 'master' into fix/refactor-modelto
Tiny fix: use setAttributes