CB-3359 Parse large JSON payloads on a background thread, and yield when executing multiple commands is taking too long.

This doesn't solve large payloads, but does help with locking up the
main thread.
It also prevents locking up the main thread when every exec callback
results in another call to exec().
CB-4330 Fix hash changes being treated as top-level navigations
CB-5697 Fix location.reload() not firing deviceready.

It was being detected as a hash change event.
This commit also fixes isFragmentIdentifierToRequest ignoring query parameters.