fix controller global data setting

Changes in behavior mimic the next-gen refactor branch. Specifically:

1. The data option will be passed directly to the layout function and
not called by the controller automatically.

2. The data function will only be called if a template explicitly calls
it or you call it inside one of your route functions.

3. No more onData hook
bump versions
add back a data function people can call if they want
Added self-referential test to wait_list.

For #742
Expanded test a little
Added sort-of-failing test for #754
Another unnecessary stop(). Fix for #743

This was essentially the same bug as #471, fixed in 
https://github.com/EventedMind/iron-router/commit/4f8e64eb889f3c539c754cda2f4bbf8bf6f887a4
remove deprecate method from utils since we have it in core
update for new package system
update history
Merge branch 'master' into devel
Merge branch 'devel' of github.com:EventedMind/iron-router into devel
add underscore to test block
attempted fix for infinite invalidation loop

@DerMambo, @tmeasday: can you see if this fixes the issue for you? and
doesn't cause side effects that I'm not thinking of. Use the devel
branch of iron-router. Thanks!

See issues:
* https://github.com/EventedMind/iron-router/issues/742.
* https://github.com/EventedMind/iron-router/issues/741
bump version for bug fix release
add version_conflict_error.js file
add versions.json file
Added failing test case for #742

@cmather — this exhibits my suspicion that decrementing the `notReadyCount` in the `afterFlush` is “too late”. 

One potential solution would be to do `deps.changed()` in the `afterFlush` if `notReadyCount` gets to 0 but I feel like that would just open a whole other kettle of fish.
Fix missing comma in smart.json
Merge pull request #770 from zimme/smart.json

Fix missing comma in smart.json