Let tests run in any order

This builds on PR #294.

In general, tests should not depend on the order in which they're run. If tests only pass when run in a particular order, then there's some kind of underlying problem that's being masked, or something from one test that's escaping and impacting another.

This change:

  1. Removes all mentions of jQuery from tests.
  1. Fixes all lint errors in the tests (including a few scary ones!).
  1. Adds a way to plug in custom data sources to `RecordStore`.

The order dependence that we had involved different copies of jQuery that were floating around. It seems that in some situations you need to do `require('jquery')(windowObject)` while in others `require('jquery')` suffices. Because of the node package cache, whichever one happens first was winning. Removing test deps on jQuery solved this problem, but I'm thinking that maybe removing jQuery altogether would be a better way to go.