fix setting css() value to 0
enable unsetting css() rules by passing falsey values

Any falsey value other than 0 will unset a rule:
 - '' (empty string)
 - undefined
 - null
 - false

References #575
fix $.ajaxJSONP() when called directly

Closes #476, closes #488, closes #540
support timing-function for animate()

Closes #577
reset `animation-timing-function` after animate()

References #577
enable named durations for animate(), e.g. 'slow'

Migrated this functionality from fx_methods to fx module.
animate() doesn't set CSS transition when duration is 0
fix toggle() & fadeToggle() for multiple elements

They now toggle element visibility based on each individual element
in the collection instead of just the first one.

Closes #475, fixes #394
optimize `toggle` methods: code style, less objects

 - manageable line sizes
 - cache result of `$(this)` so less objects are created

References #475
test toggle() return value, refactor tests

References #475
support $(html, attributes) syntax for element creation

Attributes should be an object with HTML attributes, including special
attributes such as "text", "html", "val" and other.

Fixes #451
enable deep copy via `$.extend(true, target, source)`

Closes #356
enable nested structures for wrap, wrapAll
support function argument for wrap, wrapInner
fix ajax $.fn.load() behavior with selector

Grab the whole element matching the selector, not just its contents

Fixes #560
fix `attr(name, null)` unsets attribute

Fixes #498
typo in comment
notice for zsh users
fix animate() in Firefox

Newer Firefox versions decided they don't like seeing unknown property
names in "-moz-transition-property", and the old code put things in
there like "transform3d" (not a valid property) and "backgroundColor"
(camelcase, but dasherized is expected).
no need to detect css vendor prefix in tests