Add `instanceClone` parameter to `lang/clone`

Defines the behaviour of cloning instances of custom types
Define `lang/clone` default instance copying behavior
Fix typos for `lang/clone`
Clarify `lang/clone` docs

Specify that it will copy the object reference by default only if the type is
non-native.
Merge pull request #2 from conradz/clone-instances

Add `instanceClone` parameter to `lang/clone`
add CHANGELOG
Only recursively mix native objects in `object/deepMixIn`
add contributors to package.json
fix project homepage on package.json
add IRC channel to README
add travis IRC notification hook
change branches coverage threshold to 80 and make travis notify IRC always [ci skip]
Add `lang/isPlainObject`
Use `object/isPlainObject` in `deepMixIn` and update docs
Only recursively mix plain objects in `object/deepFillIn`
Increment file versions and update changelog
Use `isPlainObject` in `clone` method and update docs
Update spec wording
Merge pull request #5 from conradz/recursive-merge-behavior

Remove "magic" from recursive merging/mixing
Simplify math/countSteps. No more ternary and ~~

countSteps contained a ternary and a ~~ snake operator which was supposedly
fixing the poisonous NaN from calculating 0 mod overflow. NaN is only the
result of a mod when the right-hand side of the operator is 0. The ternary
already prevented that. The snake operator was also dangerous here because
it not only converts to Number, it converts to an integer! For step fractures
this would not work.

Amended the test spec to reflect this behaviour.