fix $.isPlainObject() for `window` in Opera

Fixes #652
$.ajax error callback correctly reports "abort" status

Before it was just "error".

Assumes that an XHR status of "0" means that the request has
been aborted.

Fixes #649
additional test case for $() fragment with properties

Proves that Zepto behaves differently than
http://bugs.jquery.com/ticket/12881
fix `hasClass` in collections of multiple elements

It should return true if *any* of the elements has the class, not just
the first one.

Fixes #631
avoid explicit uses of `undefined` where possible
avoid another use of `undefined`
exec phantomjs
stop iteration in fn.each() when the callback returns false

This makes it compatible with jQuery and current Zepto documentation.
add few missing tests for collection returning self
Ajax: add ability to set `xhr()` factory per-request
have get() method accept negative index
fix assertion order in `get()` tests
support for multiple class names in toggleClass()
refactor toggleClass and tests
Add os.phone and os.tablet (booleans); Detect Firefox mobile, PlayBooks
Add Windows Phone/Windows RT user agent strings for prosperity (Zepto doesnt support IE 10)
Detect: Added BB10 to detectable os's
more robust object type checks, taken from jQuery

This fixes operating on DOM elements within iframe.

Fixes #667

Thanks:
* John Resig
* John-David Dalton
* Rafaël Blais Masson
* Robert Katić
* Ariel Flesler
remove $.isObject() and reduce internal usage

It's a vague check and jQuery doesn't have it anyway.
Use $.isPlainObject() or $.type() instead.
switch Travis from ruby to node worker