Get rid of asInstanceOf in play-functional
Refactoring Cached
Created parameter validator to allow easy validation of multiple parameters against multiple constraints. Included unit tests

Added another unit test to prove we support different data types and aggregate multiple errors
Make the JavaScript reverse router return a play.api.templates.JavaScript value
Update Global.java

Removed unneeded tabs
Rename api.mvc.Controller implicits fix #2605

This modification reduces the chances of application code accidentally shadowing
the implicits leading to confusing errors
Remove session access through implicit in doc fix #2605
Remove flash access through implicit in doc fix #2605
Changed tabs to whitespaces
make ActionBuilder covariant

ActionBuilder is more flexible if it is declared to be covariant rather than invariant in its higher kinded type R.
R only appears in covariant positions ActionBuilder:
…(block: R[A] => Result):… is in a contravariant position and R[A] is the contravariant position of the function type, which overall makes R covariant.
Being covariant, ActionBuilder[WrappedRequest] (or other subtypes of WrappedRequest) can be safely upcast to ActionBuilder[Request].
Add ActionFunction, a generic version of ActionBuilder

Includes some other useful refinements on ActionFunction (ActionRefiner,
ActionTransformer, and ActionFilter), updates to documentation and examples for
ActionFunction, and appropriate compose functions (as suggested by @huntc).
Fix weak keys so we can check the root certificate key length

Add documentation to Algorithms.scala
Fix the minimum key size to actually match what the NIST recommendations are.
Suppress the exception on a weak certificate in a default trust store to a warning.
Upgrade the keystore to use 2048 RSA key.
clean up log messages.
Make trust manager check trustanchor's keysize
Improvements to WS API

This commit solves two problems:

* It solves the WS execution permutation problem, where there needs to
  be every permutation of every method name and body type, by making the
  method and body settable on the request holder, and providing a no arg
  execute method that uses the set method/body.
* It allows you to stream the body as an enumerator, making it very
  simple to pass to a response.
Make sure that Channel operations are run in order

Introduce a RunQueue class to assist with running
operations in order. Use this class to ensure that operations
within the Channel objects returned by Concurrent.broadcast
and Concurrent.unicast execute their operations sequentially.

This change *may* fix a race condition in Play's WebSocket
code (see #2646), but this hasn't been verified.
FIXUP: formatting
Specs and scaladoc for insertion
Update Dependencies.scala
Issue #1905 - adding documentation for logging