New router

Like the `ScalaBusMod` this can be used as a replacement for `RouteMatcher`. It should be more idiomatic to use than the `RouteMatcher`.
Call me lazy, but I didn't want to implement all the API functions with `AsyncResult[X]` to return `Future[X]`. I know that would be great etc. but it's something for a whole new commit as it would add A LOT of new API functions - and should be tested, too. Not sure if it's a good idea to do that for 2.x or just try to have it ready for 3.0.

And yes, with `vertx.runOnContext(runnable.run())` it could bite us, if client code uses these Futures without calling (for example) `request.pause()` and `request.resume()` all the time.