Add `instanceClone` parameter to `lang/clone`

See #1.

This adds an `instanceClone` parameter to `lang/clone`, which allows passing a function that will be called to clone any non-native instance. A non-native instance is an object where `.constructor` is not `Object`.

Opening this for more feedback. Is this the way it should behave?