Intellij friendly error message
lift mapM and flatMapM from Iteratee into BodyParser

The existing map and flatMap methods on BodyParser already lift the
underlying Iteratee methods into BodyParser. This commit does the same
for the mapM and flatMapM methods, and for completeness-sake, it also
lifts the validate method to validateM. These combinators allows one
to write code that asynchronously processes the results of body
parsers, without having to touch the underlying Iteratee
implementation.

All `BodyParser` methods (`map`, `mapM`, `flatMap`, `flatMapM`,
`validate`, and `validateM`) should take an implicit parameter for the
execution context, rather than using Play’s internal execution
context. Furthermore, these execution contexts must be carefully
prepared with the `prepare` method, to ensure any user context is
captured. The tests in `play.it.http.parsing.BodyParserSpec` use the
`ExecutionSpecification` trait, following the example of
`play.api.libs.iteratee.IterateesSpec`, to test the use of execution
contexts. This API change required a few minor fixes:
`play.core.j.JavaParsers` and
`play.it.http.parsing.JsonBodyParserSpec`.

Add property-based tests for BodyParser methods. Test the
functor(-like) and monad(-like) laws for map, mapM, flatMap, flatMapM,
validate, validateM. Use org.scalacheck.Gen.oneOf to provide arbitrary
SimpleResults, and test the two cases for returning a SimpleResult
with validate and validateM

The `run` helper applies body parsers in another thread, thus ensuring
that the execution context was prepared when the body parser was
constructed, not just when it is run!
Docs and tests for Channel.end behaviour

* Worked out exactly how Channel.end is implemented
* Wrote tests to assert this behaviour
* Wrote docs to specify this behaviour
use conflicting implicits to disable unique selection

Make the prepared execution contexts in BodyParser methods implicit so that they conflict with the implicit parameter, and thus neither implicit can be automatically used within the scope of the body.

Minor: add some scaladoc and minor stylistic tweaks to tests
increase test timeout to 10 seconds
Merge pull request #2392 from jamesward/fix/akka-shutdown-test-timeout

increase akka shutdown test timeout to 10 seconds
Merge pull request #1864 from dwhjames/topic/bodyparser-liftM

Lift mapM and flatMapM from Iteratee into BodyParser
Copying interesting configuration options from ScalaDatabase.md.
DB config property name is "password" not "pass"

I've figured this one out by copy-pasting from the docs. Shame on me :-p
Suggest using Scala class in ScalaTemplates.md
Merge pull request #2400 from arielscarpinelli/master

Copying interesting configuration options from ScalaDatabase.md.
fix problem with headers getting first 2 bytes dropped on some http client such as MS.net http client
Add filter method to promise
Remove use of upper-bounded wildcard types in Promise.sequence
Merge pull request #2412 from pvlugter/promise-filter

Add Promise.filter
Fix onHandlerNotFound not receiving requests modified by upstream filters
Merge pull request #2413 from pvlugter/promise-sequence

Fix Promise.sequence
Merge pull request #2403 from mkiedys/doc

Suggest using Scala class in ScalaTemplates.md
Merge pull request #2276 from jkyamog/master

First 2 bytes of http headers getting dropped on some http client
Merge pull request #2231 from bbarkley/master

Fix onHandlerNotFound not receiving requests modified by upstream filter...