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