[changed] Give ActiveState a chance to update state before mounting
[changed] Give path listeners a chance to update state before mounting
[added] transition.wait(promise)

[removed] Ability to return a promise from willTransition* hooks

This commit makes async transitions entirely optional. Users
opt-in to using asynchronous transitions using transition.wait(promise).

Fixes #309
Fixes #300
Fixes #295