Perform defaults/options merge in a single deep-extend operation

Also, configurable animation settings, slightly better compressed size, etc.
The `defaults` object is the same 'shape' as the `options` object that the user should pass to the function. In that way, it provides a good example of how the options should be structured. Passing `true` as the first option in `jQuery.extend` causes extend to be a recursive, 'deep' operation.