|#98 Convert wrapper classes to AnyVal, use `asJava` to get Java POJO

* All wrappers except Message and RouteMatcher have been
converted to AnyVal instances.
* AnyVal instances don't allow `this.type` to be referenced, so
instead a Self type was created with a covariant type parameter
that points to itself.
* Wrap class has been merged with Self, since both are very
tighly related. Self defines the return type and wraps it using
self() method. Each wrapper class defines what self() should return
* Removed all Wrapped* classes and just merged them into their
corresponding trait.
* Added missing javadoc and corrected where necessary
* Added missing copyright notices
* Separate Vertx into a separate class. This avoids a type erasure
compilation error.
* Make AnyVal classes private to scala package. By doing this,
AnyVal classes can be be instantiated directly in cases where the
same instance is to be used as a method return assuming the underlying
is stable. One such case is Vertx.eventbus method.