Scala API - please review

Please do not integrate, just review and send me notes about it :)

It should have the complete Java API now, but there are some things
about it:

1) The event bus is hard to do as handlers which get implicitly
converted create new objects. That means that these new objects won't be
able to be unregistered later. I've added two methods that should be
able to deal with it, but maybe you have a better idea how to handle this.

2) I've copy & pasted most of the JavaDoc into the Scala stuff. I guess
there'll be some comments that don't work out very well.

3) I did not implement any(!) tests and actually deleted what was there
before. Mostly because there is no testtools for Scala yet and using the
Java API to test the Scala API is not really nice to do. Is someone
working on testtools already? Would be very nice to use it then and test
everything with it.

As I've done quite a bit of work now during the nights, I'd really like
to see other people working on it - I'd be really happy if someone else
would be able to implement the tests and fix what's wrong with the code.

4) There are a lot of methods like this, to have a fluent API:

    class SomeWrappedJavaClass {
      def doStuff(someParameter: String, doneHandler: String => Unit): SomeWrappedJavaClass = ...
    }

I'm not sure what would be better: The one posted above or `def
doStuff(someParameter: String)(doneHandler: String => Unit)= ...` to be
able to call it like this: `doStuff("hello") { answer => println("got a
reply: " + answer) }`

5) RouteMatcher - I'd like to kick this out of the API completely. As a
replacement we could add a real idiomatic RouteMatcher, which might look
like this:

    class MyRequestHandler extends RouteMatcherTrait {
      def requestHandler(request: HttpServerRequest) = {
        case Get("/") => SendFile("index.html")
        case Post("/login") =>
          if (checkLoginPostData(request)) {
            SendFile("logged_in.html")
          } else {
            SendFile("error.html")
          }
      }
    }

6) Using Futures and Promises, maybe we could use one of them as a
replacement for AsyncResult...? It would also be extremely nice to have
them as a return value of functions, so working with the file system
could look like this:

    for {
      firstFile <- fs.open("some_file.txt")
      secondFile <- fs.open("some_other_file.txt")
      firstText <- fs.read(firstFile)
      secondText <- fs.read(secondFile)
    } yield {
      firstText + secondText
    }

That's not a good example, but think about "scripting" in this style -
open file, read it, transform it, write the output somewhere else.