Unsubscribe from self-destructed queries
Allow pubsub transactions from external sources

This allows pubsub adapters to raise change events fro changes that
happened outside the Racer ecosystem, by omitting the txn version.
Return objects from model.on() BREAKING CHANGE!!!

Adding the same function as a listener for two different events (or two
different onPath() paths) will overwrite the cleanup() functions.
This breaks query destruction for queries with dependencies (since
resetResults() is added for each dependency)

Any code that uses the returned function (other than to call cleanup())
will break.  This includes Derby; I'll fix that in Unroll-Me/derby.

Fixes #113
Update onPath() to return object

See 97d170f
Merge remote-tracking branch 'SLaks/master' into habitrpg