Change error message: No such partial -> No such template
New helper Meteor._noYieldsAllowed: ensures that a section of code does not yield.
Don't call "stop" on already-stopped observe handles, when unsubbing after a
setUserId.
Move Future.ret alias to fiber_helpers.
Merge remote-tracking branch 'upstream/devel'
improved error on deploy with no network
Revert "Make Meteor._WriteFence available on the client as well as the server. Keep"

This reverts commit 0092a560f26c4499149e0aefa2268e7ed6f0c4b1.

The goal for _WriteFence is that it be specific to the concept of declaring when
writes are done (and one day may be a networked message bus), not that it be a
generic "call this method after these methods" helper.
Minor docs improvement around login service configuration
Improve docs around internal patches to sockjs

Refer to the GitHub issue discussing a bug.
Don't drop method calls on the floor shortly after connectivity loss. Fixes #339
Add saveOriginal/retrieveOriginal methods to LocalCollection.

This will eventually be used to replace snapshot/restore. snapshot/restore are
used to implement full-database quiescence; saveOriginal/retrieveOriginal will
be used to implement per-object quiescence.

Also, throw on duplicate-ID insert.
Demo for quiescence.
Overhaul quiescence, method callback timing, and login methods on the client.

- Data streamed from the server is quiesced on a per-object basis, not a global
  basis. We track which documents a method stubs modifies, and create individual
  snapshots ("server documents") of those documents rather than whole-Collection
  snapshots. Data writes from the server to documents not modified by stubs are
  applied immediately to the local cache; other writes are applied to the
  "server document" snapshots. Server documents are flushed to the local cache
  when all method stubs that wrote to the document have sent their "data write"
  message.  (We still do "full database" quiescence after a reconnect.)

- Instead of calling method callbacks as soon as the result is received, we wait
  until all data that precedes their "data done" message is flushed to the local
  cache. This way, method callbacks can see all of their results locally. (This
  applies to Collection mutator callbacks as well.) If this delay is
  unacceptable, you can also specify the onResultReceived option to
  Meteor.apply; this callback is given the method result as soon as it comes in,
  and there's no guarantee that the local cache is up to date.
  (This is a client-only change: server-side callbacks do not block on the
  write fence.)

- Methods invoked with the "wait" option to Meteor.apply now wait until all
  preceding methods are fully finished to be *sent*, not just to call their
  callbacks. ie, previous calls block the "wait" method in the same way that
  "wait" methods block subsequent calls.

- Remove Meteor.userLoaded and {{currentUserLoaded}}.
  Meteor.userId() is now set only at the point where Meteor.user() is fully
      loaded.
  Current user data is published via an unnamed subscription, not via
      "meteor.currentUser".
  Replace them with Meteor.loggingIn() and {{loggingIn}}, which become true
      as soon as the login method is sent (instead of only once it succeeds).
  In accounts-ui, move the spinny into the dropdown, because it now shows up
      before error messages would.

- Previously, if we received the "result" message from a method but no "data"
  message, and then disconnected and reconnected, quiescence would be
  permanently blocked. Now, not only do we allow the app to continue working,
  but we even guarantee that the method's callback will be called at the
  "reconnect quiescence" point.

- Remove reset function from the Store API (the interface between
      _LivedataConnection and Collection), and add a boolean "reset" argument to
      beginUpdate instead.
  Add saveOriginals/retrieveOriginals functions to the Store API (pass-through
      to minimongo implementation).
  Allow "replace" messages to be passed to the Store API's update function
      (in addition to set/unset).
  Allow Store API implementations (eg tinytest_client) to not specify all
      functions.

- Server-side tinytest results now stream into the result page instead of
  appearing all at once at the end.

- Rename fields and methods of Meteor._LivedataConnection as camelCase, and
  prepend all internal fields with _.

- Different Meteor._LivedataConnection objects now have separate
  _userIdListeners _ContextSets.

- Remove snapshot/restore functionality from Minimongo collections. (Individual
  queries still have result snapshots.) The "server documents" in
  Meteor._LivedataConnection serve the equivalent purpose.

- Meteor.loginWithToken's callback is now a "call with error on error, call
  with no args on success" callback like the other login callbacks.

- The test-only Meteor._LivedataConnection.onQuiesce function is removed.
  Every single use of it is now supported by normal method callbacks.
Wrap mongo_driver.js in anonymous function call.

This has the side effect of forcing several other files to pull in the Fiber
symbol explicitly.
New class Meteor._SynchronousQueue, which runs tasks serially.

Will be used for Meteor._Mongo._LiveResultsSet de-duping.
Refactor mongo-livedata cursor objects.

Separate the "description" of the cursor from the actual wrapped Mongo
cursor.

Collection.find() no longer runs a Mongo query: you have to actually call a
function like fetch, count, or observe on the cursor to run the
query. (Specifically, this lets us skip a useless query when a publish function
returns the result of a find().) This implies that errors that used to be
reported at find() time are now reported later.

Also, allow objects other than Mongo cursors returned from publish functions to
define their own _publishCursor functions (this is not documented or officially
supported). The _publishCursor code is moved from the livedata package to
mongo-livedata.
Make multiple observes of the same Mongo cursor share their polling cycles.

There is no longer any explicit time-based throttling of Mongo poll calls,
though we do prevent multiple instances of polling to be scheduled at once. If
this appears to be a problem, we can reintroduce throttling.

Note: this can lead to a hang if you start observing a cursor during a callback
from an identical cursor's observation. This doesn't seem to be a very realistic
use case though.
Change "wait" methods to do a full quiesce: ie, they do not stream data.

Rationale: "wait" methods are used for login/logout, which tend to make drastic
changes that should take effect atomically rather than streamy. (Without this,
logging out with accounts-ui saw the username disappear before the buttons
switched from "sign out" to "sign in", eg in single-button mode. Now it goes
directly from "signed in with username visible" to "signed out".)
bump a bunch of versions
Add default safe mode option to stop mongo driver from printing a warning.