Update the WS documentation so it all compiles and looks nice
Add withoutPlugins to Java FakeApplication
Fix Enumeratee.mapInputFlatten and Enumerator.unfold to take a ExecutionContext
Allowed JAVA_HOME to be set from the command line
Fixed some typos in "The Project class" chapter
Merge pull request #1532 from oliskin/patch-3

Fixed some typos in "The Project class" chapter
Merge pull request #1529 from kmile/use_java_home

Allowed JAVA_HOME to be set from the command line
Spec compliant media type parsing

Parsing media types is actually very complex, and previously Play was
doing a hacky series of splits, which usually work, but as soon as
something slightly different from what typical clients send came, would
not work at all.

The following changes have been made:

* New MediaType class that has the type, plus a sequence of the
  parameters, parsed according to RFC 2616, so they support everything
  including quoted parameter values, parameterless values, etc etc.
* New mediaType method on RequestHeader for parsing the Content-Type.
* contentType and charset methods on RequestHeader now use the new
  mediaType method to correctly parse the header.
* multipart/form-data now uses the mediaType method to correctly get the
  boundary parameter, fixing #1399.
* MediaRange now extends MediaType, and has a q value and a sequence of
  accept extensions.
* MediaRange sorting is now stable, equal q value/specificity media
  ranges are in the same order as in the Accept header.
* Matching of types, sub types and parameter names is now down case
  insensitively, in accordance with the spec.  Previously contentType
  was always converted to lower case (in a way that was susceptible to
  the turkish i bug), now it's left alone.

The new parser uses Scala parser combinators.  In order to correctly
parse quoted parameters, a parser like this was necessary, since
delimiters may appear in the quoted values, which would break split. A
benchmark of a relatively complex accept header (6 elements) showed it
takes 40us to parse it on my machine.

At some point in future we may decide to extract some of the parsing out
into a generic class for reuse in other parts of Play, but for now I
just wanted to get this fix finished without over engineering.
CSRF improvements

* Refactored CSRF handling
* Allowed better script/ajax integration
* Allowed per action CSRF handling
* Fixed BREACH vulnerability
* Added documentation for CSRF
* Made action builders more composable
Merge pull request #1475 from wsargent/fix-1475

Clean up PlayWS documentation for 2.2
Merge pull request #1508 from jroper/csrf-refactor

CSRF improvements
Upgraded to sbt 0.13.0
It was possible for a race condition to occur (see https://github.com/playframework/playframework/pull/1294#commitcomment-3895065).

The issue is fixed by ensuring that only one caller is able to instantiate the client at a time.
Added gzip filter

* Added gzip/gunzip enumeratees, with tests
* Added gzip filter, with tests
* Added two new iteratee concurrent facilities, a joined
  iteratee/enumerator, and a partial run of an enumerator that returns a
  future with the iteratee result and an enumerator that links up to the
  enumerators remaining input.  With tests.
* Documented how to use the gzip filter in Scala and Java, and added it
  to the 2.2 highlights.
Merge pull request #1535 from huntc/ws-synchronisation-issue

Wild thread allocations during startup
Merge pull request #1515 from jroper/gzip

Added gzip filter
Performance optimisations in iteratees and request processing

* Run internal, non-blocking code on the same thread, where possible,
  rather than using a ForkJoinPool. Introduced a trampoline that can
  be used to execute code on the same thread. This is now used instead
  of a fork-join pool for iteratee internal code and when processing
  requests. User code still runs in a separate ExecutionContext.
  For a simple request, calls to the FJP ExecutionContext are reduced
  from about 50 calls down to 2 calls.
* Change some blocking iteratee methods to run in a user-supplied
  ExecutionContext: Enumerator.fromStream, Enumerator.fromFile.
* Optimized several hot iteratee functions: fold, unfold, flatMap,
  Done.mapM, Enumerate.apply.
* Bug fix: removed several accidental uses of Scala's global
  ExecutionContext from iteratees methods.
Merge pull request #1526 from richdougherty/run-in-ec

Fix Enumeratee.mapInputFlatten and Enumerator.unfold to take an ExecutionContext
Merge pull request #1489 from gmethvin/without_plugins

Add withoutPlugins to Java FakeApplication
Merge remote-tracking branch: upstream/master