Isolate consistent id generation tests
Fix consistent id tests.

We now wait for subscriptions to be ready before calling
methods that affect those collections. Otherwise, when the
callback fires the documents in those collections aren't
guaranteed to be available on the client.
expand DDP heartbeat section in History
Bump a test timeout
Fix IE8 "table assembly" test failure.

We no longer automatically wrap table elements in
a <tbody>.
Simplify mongo-livedata id generation tests
Work towards better mongo-livedata tests.

We should always wait for subscription to be ready
before calling methods if we expect to be able to read
the database within a method callback
Fix some mongo-livedata tests
Wait for subscription ready on another mongo livedata test
Wait for sub ready on another mongo-livedata test
Don't set img tags to javascript: URLs in tests in IE.

IE throws an exception if you set an img src to a javascript: URL.
Fix consistent id tests on IE8

IE8 doesn't support `func.name`
Handle token observe better with overlapping login

Before this, we could see the "non-null user observe" error if:

- One login method ran (eg login) and it called _setLoginToken.
  It stored null in userObservesForConnections and gets to the
  defer/observe part
- Another login method ran (eg getNewToken) and it called
  _setLoginToken. The call to removeTokenFromConnection at the top
  clears the null from userObservesForConnections, and it then
  stores its own null in userObservesForConnections, and defers
- One of them finishes the observe and puts its observe in
  userObservesForConnections, overwriting the null which it thinks
  is its alone
- The other one gets there and throws

Also, consistently use _.has when checking if userObservesForConnections
has an element.
Fix accidental QUERYING->STEADY transition

Fixes "Exception in defer callback: Error: Phase unexpectedly STEADY"
error
Mark reason and error as optional in new Meteor.Error
Pass failure message for test.length()
Use Random.id() for meetup state parameter.

For some reason meetup converts underscores to spaces in the state
parameter.
Update license file
Update license file more
Add showdown version in History