routing: big refactor, should be easier to use (simpler types exposed)

This is a breaking change. If no one speaks up soon, it will be merged into v0.4.0 (and snapshot published). If you're using reactive-routing 0.4.0-SNAPSHOT and think such a breaking change should wait until after the next release or milestone, please speak up.
Thanks.