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.
Fix bug when using multiple include keys
Merge tag 'v2.2.2'

2.2.2
Merge pull request #203 from lchenay/patch-5

Fix bug when using multiple include keys on related method
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