Firefox fixes for html5-filesystem adapter.

Doesn't actually make this adapter work on Firefox, but at least keeps it
from crashing the test suite.
Use the standard 'textContent' property instead of 'innerText' in test suite.

This makes the new 'click to test an adapter' functionality work on Firefox.
Remove explicit timeouts from test suite to avoid bogus failures.

Firefox's IndexedDB implementation is significantly slower than webkit's,
which causes sporadic failures of the test suite.
IndexedDB: Remove an unnecessary setInterval() call in the batch() method.
IndexedDB: Manually unregister event handlers in adapter to prevent leak.

This prevents a leak in Chrome.  Granted, this is actually a bug in chrome:
the request objects should get garbage collected which should also free up
the event listeners.  But this doesn't appear to be happening (as shown
in Chrome's memory tracing tools).
IndexedDB: Update READ_WRITE constant to match latest spec (Chrome 21).

Numeric constants for transaction mode are deprecated.
IndexedDB: Workaround Firefox bug w/ openCursor method.

Spec says that cursor is null if the range is empty, but firefox makes the
cursor undefined instead.
IndexedDB: Update 'versionchange' to match latest spec (Chrome 21, Firefox).

Transaction creation inside a versionchange transaction is disallowed.
IndexedDB: Delete and rebuild lawnchair if we are given a VERSION_ERR.
IndexedDB: Add workaround for implementations that don't support autoIncrement.

Both Firefox and Webkit have issues with the autoIncrement feature of
IndexedDB.  Let's assume that those bugs will be fixed by the time the
spec becomes final and indexedDB is unprefixed -- but until that time,
don't use the feature and use the same this.uuid() key-generator that the
other implementations use.
IndexedDB: remove races from implementations of batch() and get(array).

The previous implementations suffered from race conditions: the order of
the results was not guaranteed to match the order given in the parameters.
IndexedDB: Implement the keys() method in the adapter.
IndexedDB: Ensure that get() sets the key field in the result.
Add tests for batch add, get, and delete.

The webkit-sqlite, indexed-db, and dom adapters all fail this new test in
various ways.
IndexedDB: implement batch remove.

Implement batch remove.  While we're at it, make the "is this a key or
an object containing a key" test consistent with that used in the other
adapters.
dom adapter: fix get(array) with nonexistent key; fix remove(array).

Passing an array to get() could previously return a result array shorter
than the parameter array, since keys not present in the lawnchair were missing
from the result.  Add 'null' in the place of the missing result, to be
consistent with other adapters.

Implement batch remove (using code borrowed from the indexedDB adapter).
webkit-sqlite adapter: various fixes to batch(), get(), and remove().

Update the batch() implementation to match that used in the other
adapters.  Removes the need for setInterval() to poll for completion.

Fix sql quoting issues in get() implementation, and ensure that the
order of returned results matches the order of the keys provided as
arguments in the batch get case.

Implement batch remove.  Update the "is this a key or an object containing
a key" test to match that used in the other adapters.
Fix 'independent data stores' failure in memory and window-name adapters.

Also fixes issue #108 with the nuke() method, while we're at it.

In addition, a few minor changes to try to make memory and window-name more
nearly identical, although a number of unnecessary whitespace diffs remain.
Merge pull request #130 from cscott/for-upstream-20121017

Firefox compatibility, IndexedDB fixes; batch remove fixes; issue #108.