Make FormUrlEncoded Data Preserve Parameter Order. Fixes #1814

* Write play.utils.OrderPreserving.groupBy to abstractly do groupBy while preserving order
* Created a separate module because there might be a need for other OrderPreserving things later.
* Utilize OrderPreserving.groupBy in FormUrlEncodedParser.scala so that it can return ListMap instead of Map
* Adjust ContentTypes, Fakes, and JavaParsers to use ListMap instead of Map for FormUrlEncoded bodies
* Write new test case for validating FormFieldOrder being received correctly out of the pipeline
* Extend test case for FormUrlEncodedParser to ensure it maintains parameter order.
Retain original Map[String,Seq[String]] interface. #1814
* The OrderPreserving.groupBy still returns a ListMap in its implementation but its interface is Map
* Consequently all the other places ListMap was being used can now be Map
* This restores the original formUrlEncoded interface and should be fully compatible with existing uses.
Merge pull request #1939 from reid-spencer/master

Make FormUrlEncoded Data Preserve Parameter Order. Fixes #1814