Calling WS API with invalid URL throws synchronous exception

When calling the WS API with an invalid URL, a synchronous exception is thrown.  This makes calling code harder to write, as you have to handle both exceptions and failed futures.  The attached patch catches these exceptions and converts to a failed future so that callers can use consistent error handling.

Example stack trace:

```
java.lang.IllegalArgumentException: The URI scheme, of the URI test/webapps/software-updates/registrar/checkCallbackToken, must be equal (ignoring case) to 'http', 'https', 'ws', or 'wss'
    at com.ning.http.util.AsyncHttpProviderUtils.validateSupportedScheme(AsyncHttpProviderUtils.java:55) ~[com.ning.async-http-client-1.8.8.jar:na]
    at com.ning.http.client.RequestBuilderBase$RequestImpl.toURI(RequestBuilderBase.java:175) ~[com.ning.async-http-client-1.8.8.jar:na]
    at com.ning.http.client.RequestBuilderBase$RequestImpl.getURI(RequestBuilderBase.java:158) ~[com.ning.async-http-client-1.8.8.jar:na]
    at com.ning.http.client.RequestBuilderBase$RequestImpl.getUrl(RequestBuilderBase.java:144) ~[com.ning.async-http-client-1.8.8.jar:na]
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect(NettyAsyncHttpProvider.java:988)
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:933)
    at com.ning.http.client.AsyncHttpClient.executeRequest(AsyncHttpClient.java:524)
    at play.api.libs.ws.ning.NingWSClient.executeRequest(NingWS.scala:42)
    at play.api.libs.ws.ning.NingWSRequest.execute(NingWS.scala:246)
    at play.api.libs.ws.ning.NingWSRequestHolder.execute(NingWS.scala:405)
    at play.api.libs.ws.WSRequestHolder$class.post(WS.scala:528)
    at play.api.libs.ws.ning.NingWSRequestHolder.post(NingWS.scala:361)
```

I have signed the Typesafe CLA.