Add partition, partitionAll, partitionBy

partition produces an array of arrays, each containing n elements, each offset by step (optional).
It also allows an optional padding array which will attempt to fill the last partition to n elements if short.

partitionAll allows the last partition to be less than n elements long without using padding elements.

partitionBy applies a condition to each element in array, splitting it each time the condition returns a new value.
Make $.first and $.last generic functions.
Fix $.difference function.

The "as" operator is not the canonical way of unwrapping optional!
Merge pull request #28 from nubbel/feature/generic-first-last

Make $.first and $.last generic functions.
Combine overloaded partition function via defaults

Combine method signatures of partition when able via optional parameters
which are set within the function. Unfortunately, optionals cannot be set to
equal earlier arguments within the method signature.
Merge pull request #25 from zolrath/master

Add partition, partitionAll, partitionBy
Convert most AnyObject to Generic <T>

In order to not lose type information many methods have been changed
to use generics instead of AnyObject.
Rework merge signature

Given dictionaries `dict`, `dict2` and `dict3` previously merge was
called via:
$.merge(dict, dictionaries: dict2, dict3)

With these changes merge becomes:
$.merge(dictionaries: dict, dict2, dict3)

and gains
$.merge(arrays: arr, arr2, arr3)
Merge pull request #31 from zolrath/merge-signature

Rework merge signature
Merge pull request #30 from zolrath/genericism

Convert most AnyObject to Generic <T>
Adding doc comments above each method
Merge pull request #33 from ankurp/docs-in-code

Adding doc comments above each method
Fix bug in initial and rest method