Merge pull request #2617 from richdougherty/scala-version-bump

Bump Scala version to 2.10.4
Merge pull request #2612 from benmccann/add-import-to-guide

Add an import to code example in the Java guide to make it clearer how to call a view
Merge pull request #2613 from richdougherty/empty-bodyparser

Add empty BodyParser to Java API
More formatting corrections.
Merge branch 'master' of github.com:playframework/playframework
Merge pull request #2386 from analytically/master

Newline at the end of the file
Merge pull request #2610 from smola/docs/fix-changelang-javadoc

Fix changeLang javadocs: en_US is not valid.
Merge pull request #2614 from richdougherty/names-for-executioncontexts

Make ExecutionContext vals into objects
Merge pull request #2615 from richdougherty/java-action-trampoline

Bounce JavaAction code on a trampoline
Enhanced doco in response to community feedback.
Merge branch 'master' of github.com:playframework/playframework
Merge pull request #2499 from jroper/2499-java-repeat-fix

[2.2.2-java] duplicated list entries view for Lists. @repeat helper is wrong
Optimize router HandlerInvoker construction and lookup

Before this change routers created a HandlerInvoker for every request.
With this change, each route's HandlerInvoker is created once and
cached in its own lazy val.

We can use the cached HandlerInvoker to cache route information such
as Java reflection info and request tags. That lets us remove the
ConcurrentHashMap that was previously used to cache Java reflection
info.

These changes improves both Scala and Java performance, but Java
performance improves the most.

To implement the change, we change all the implicits that we
previously used for creating HandlerInvokers into implicits for
creating HandlerInvokerFactories. HandlerInvokerFactories are used
to create the HandlerInvokerFactory for each route.

We need to use a hack to implicitly resolve the correct
HandlerInvokerFactory.

Before, HandlerInvokers were implicitly resolved while a request was
being handled. That meant that the correct implicit HandlerInvoker
could be found by calling the controller method with the request
parameters.

Now, we can't call the controller method, since we want to create a
HandlerInvokerFactories even when we're not handling a request, so
we can't call the controller method with the request parameters.

What we do instead is *pretend* to call the controller method in a
call-by-name thunk, but never actually call that thunk.

It's a bit hacky, but it works. Maybe in the future we could use
macros to directly get the return type of the controller method.
Removed the hard dependency on the Activator version.
Merge branch 'master' of github.com:playframework/playframework
Merge pull request #2622 from richdougherty/router-handlerinvoker-caching

Optimize router HandlerInvoker construction and lookup
Merge pull request #2489 from sombatsombat/patch-1

Update JavaGuide2.md
Merge pull request #2616 from yokomizor/fix_typo_in_hacking_documentation

Fix: typo in hacking documentation
Lang: case insensitive equals and hashCode. Fixes #1701.
Check that Java BodyParser runs in the user thread pool