Java8-ification, tweaks, and thread safety. Make sure Vert.x objects can...

... be used from other threads - important in the embedded without verticle use case
Now the `endHandler` / `exceptionHandler` callbacks also owns the lock of the `MessageConsumer` object