[#1846] Attempt to make message parsing faster
Test message parsing
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
Newlines at the end of the file.
Make the JavaScript reverse router return a play.api.templates.JavaScript value
Send close control frame on client-initiated disconnects
Update JavaGuide2.md

add addtional lines to modelsTest.java to prevent compilation error.

import java.util.List;
import com.avaje.ebean.*;
import play.libs.*;
Fixed regression in rendering repeated Java form fields

Fixes #2499

The actual bug was that the the Java Field.indexes implementation was
not returning distinct indexes when the form had no value associated
with it (eg, if it failed validation), so if a field that was repeated
had multiple sub fields, the repeat hepler would render it once for
every sub field.

Additionally, in that case, the ordering of the indexes was made
random by virtue of being calculated fdrom the keys of a HashMap, where
but the indexes should be returned in order.

This only just exposed itself because the old repeat helper simply
rendered as many fields as the maximum index.  The new one however
renders fields equivalent to what indexes exist in the form.

New tests test both that only one of each index appears, and that
indexes are always returned in order.
Replace tabs with spaces
Rename SBTLink to BuildLink
Implement the delegating ClassLoader in Java and move it to the sbt-link project so that it can be used in other build systems
Share code to remove duplicate list of shared classes
Ensure exceptions from JUnit tests are logged
Renamed SimpleResult to Result

* Renamed SimpleResult to Result
* Removed all deprecated result types
* Merged WithHeaders into Result since it only existed for the purpose
  of sharing functionality between PlainResult AsyncResult
* Introduced SimpleResult type alias and object as deprecated for the
  purpose of easing migration
* Updated all Java helper code that didn't compile as a result of these
  changes

However, I did NOT change any code that used SimpleResult to now use
Result.  This includes Play core code, documentation, tests, and
samples.  The reason for not doing this yet was to prove that the
SimpleResult type alias and object apply and unapply methods were enough
to ensure source compatibility with all existing code.
Switch SimpleResult to Result in all code/docs

In addition, I commented out the `SimpleResult` type alias and object.
This proves that the change is comprehensive, at least from a code
perspective (there may still be uncompiled docs referring to SimpleResult,
but I did a grep on the code to try and find them all).
Reintroduce SimpleResult type alias

Reintroduced the SimpleResult type alias for migration.

Also added 2.3 migration guide with instructions for this change.
Merge pull request #2526 from jroper/remove-scala-simple-result

Renamed Scala SimpleResult to Result
Fix misleading tip about Enumeratee example

"events >>> Enumerator.eof &> toCometMessage" is inconsistent with the
code sample being referred to, and is incorrect since Enumerator.eof
shouldn't be sent through toCometMessage. I suspect that the code sample
originally read this way but was corrected, and the tip was not updated
along with it. Furthermore, "Enumerator.eof" is no longer necessary in
this section due to a fixed bug.