removes _isAborted check and player validation, implements filtered Publisher
for Game action methods (_offerDraw, _resign etc).

the _isAborted check was repeated everywhere so it has been removed and instead
the methods are only called if a filter function returns true.  this is done
using a separate Publisher that relays the User's messages, but only after
checking the filters.

The filters and filtered Publisher are set up in _subscribeToPlayerMessages, and
the subscriptions for /move etc are added to the filtered publisher instead of
directly to the User like before.
adds premove pref to User
corrects check in Game.spectate - (user in this._players) isn't right so userIsPlaying used instead
adds Publisher require to Game
removes unused 'originator' param/argument from Game filtered Publisher callbacks