Make ScalaApplication a trait

This allows Scala Dropwizard applications to be a bit more flexible in
their inheritance hierarchy:

```scala
object ExampleApp
    extends ExampleAbstraction("example")
    with ScalaApplication[ExampleConfiguration] {

    def init(bootstrap: Bootstrap[ExampleConfiguration]) {
        // initialize environment
    }

    def run(config: ExampleConfiguration, env: Environment) {
        // run service
    }
}
```