use for loop in _.each even if Array.prototype.forEach is available

Currently, the behaviour of _.each depends on the availability of
Array.prototype.forEach, which can cause code to behave differently
in different environments.
remove references to native array methods
Edit for style.
Merge pull request #1544 from braddunbar/intersection

Edit for style.
Merge pull request #1525 from davidchambers/consistent-each

remove references to native array methods
fixes #1548: _.initial broken for n > array.length
Merge pull request #1549 from michaelficarra/GH-1548

fixes #1548: _.initial broken for n > array.length
Use deepEqual when appropriate.
Merge pull request #1550 from braddunbar/deep-equal

Use deepEqual when appropriate.
Remove comment missed in #1525

Remove comment on using `nativeIndexOf`
Merge pull request #1553 from megawac/patch-1

Remove obsolete comment about using native indexOf
define _.contains for array-likes in terms of _.indexOf
Merge pull request #1556 from davidchambers/contains

define _.contains for array-likes in terms of _.indexOf
Avoid Function#call unless context is provided.

Fix #1554.
Merge pull request #1557 from braddunbar/iterator-context

Avoid Function#call unless context is provided.
Bail out early when appropriate.
Merge pull request #1559 from braddunbar/property-guard

Bail out early when appropriate.
_.matches shouldn't throw on null values.
Tests also cover undefined.
Merge pull request #1568 from braddunbar/matches-null

_.matches shouldn't throw on null values.