Put collection methods in alpha order.
Collection::random() not actually random

array_intersect_key() is incorrectly using the output of array_rand() which is an array with zero based, consecutive keys (e.g. [0=>n, 1=>n, 2=>n, 3=>n]) of length $amount as the challenge. this resulting in identical results with calls on identical collections. flipping the output of array_rand() so that the random values are used as challenging keys with array_intersect_key() fixes this issue.
Allow Illuminate\Support\Fluent to implement ArrayableInterface and JsonableInterface.

Signed-off-by: crynobone <crynobone@gmail.com>
Tweaking some code.
Fix doc blocks.
Fix calls to sortBy revealed by HHVM tests.
Merge pull request #3201 from s1owjke/docs-fix

Docblocks fix
Fix conflicts. Merge.