Fix bug
update Java actions composition documentation to match 2.2 changes
Accept all WebSocket subprotocols.
Fixes for the CSRF filter

* Fixes #1734, custom token generator feature reinstatement
* Fixes #1728, ensured CSRFFilter can be instantiated without a running
  application
* Added a csrf.sign.tokens conifguration option to switch between
  default CSRF token providers, either signed or unsigned.
* Abstracted tests so they can be run on many different permutations of
  configuration
* Added documentation about all the different configuration options

This commit breaks binary compatibility, the CSRFFilter constructor
parameters are now not lazy, and CSRFFilter is no longer a case class,
so many of the methods it used to provide are no longer there.  This was
deemed necessary because the intended use of CSRFFilter, ie:

    object Global extends WithFilters(CSRFFilter()) with GlobalSettings

was not possible with the old constructor.  The constructor is however
still source compatible for most use cases.

Since that constructor is intentionally breaking binary compatibility,
new parameters that were added for custom token generation and
configuration signing were added without consideration for binary
compatibility, only source compatibility.
Update ScalaForms.md
Updated SBT link documentation
Fixed inifinite recursion in TestBrowser.submit

Fixes #1707
Fixed 505 body sending bug

Ensured that the original body, but rather, an error message body is
sent when a chunked result is returned for a HTTP/1.0 request.
Added missing import in sample code

See: https://github.com/playframework/playframework/issues/1617
Fix incorrect method signature by extracting all the code.
simplified version of TLS patch.
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