Fix WS timeout configuration

Before this commit, any tentative to configure a timeout results in a
runtime exception `Configuration error[/../conf/application.conf:
31: ws.timeout has type STRING rather than OBJECT]`.

Because WS was trying to read `ws.timeout` as a duration value:
`val wsTimeout = playConfig.flatMap(_.getMilliseconds("ws.timeout"))`
Then was treating it as an object:
`playConfig.flatMap(_.getMilliseconds("ws.timeout.connection"))`

As a result, as soon as `ws.timeout` was set, be it a value or an
object, WS was unusable.

This commit removes the `ws.timeout` shortcut and only forces the user
to use `ws.timeout.connection`, `ws.timeout.idle` and
`ws.timeout.request`. `ws.timeout` is no more treatead as a value.
Add cache manifest MIME type
Add proxy server support to WS
Add proxySettings to all three prepare methods.
reformat