Resolving Issue #1586

This is a proposed resolution for https://github.com/balderdashy/sails/issues/1586
Pub/sub:
- Added broadcast wrapper method inside Model class methods - allows for overriding at a Model level
Don't subscribe deep to a to-one instance if it doesn't exist.

closes #1592
Merge branch 'master' of https://github.com/balderdashy/sails
Merge branch 'master' of https://github.com/natdash/sails into natdash-master
Clone the options object before referencing it in enhancedFn so that it can't be overwritten later by other route configs.
Added ability to configure default record limits for blueprints.

Use `sails.config.blueprints.defaultLimit` for general record limits.  This also serves as the default limit for populated associations.
Use `populate_limit` in your route config options to set the populate limit on a per-route basis.
Use `populate_[alias]_limit` in your route config options to set the populate limit for a particular association on a per-route basis (e.g. `populate_pets_limit: 10`)
Make educated guesses about options when specifying a blueprint route in `config/routes.js`

If you have a model User and a route config `'/user': {blueprint: 'find', limit: 5}` it will automatically set the model option to `user` for you, and set all the associations options.  You can specify an `associations` option manually with an array of strings representing the keys that you'd like to populate, e.g. `['pets', 'children']`.
Use options.limit for blueprint route populate limit before falling back on DEFAULT_POPULATE_LIMIT
Tests for blueprint route options.
Merge pull request #1587 from devadattas/patch-1

Resolving Issue #1586
Merge branch 'master' of github.com:balderdashy/sails
Merge branch 'master' into new-bodyparser