Built in support to handle all requests asynchronously 

This patch adds support for processing all requests asynchronously via the AsyncJettyHandler and AsyncHandlerList classes.

It also adds support for specifying Routes via a RouteFactory so that routes are instantiated one per request (small unit test RouteFactoryTest included). 

I also modified some of the unit tests. I was noticing that if I ran all the tests together they would sometime fail intermittently. Specifically, if I ran GenericSecureIntegrationTest before GenericIntegrationTest. I think it was because everything in Spark is static and so if you set the variables for key/trust store and password they need to be reset for subsequent tests to run correctly

 ```
static synchronized void stop() {
        if (server != null) {
            server.stop();
        }
        Spark.keystoreFile = null;
        Spark.keystorePassword = null;
        Spark.truststoreFile = null;
        Spark.truststorePassword = null;
        initialized = false;
        ready = false;
    }
```

Sorry about the formatting issue last pull request hopefully this one is better. Do you have a set of code standards published?