refactor the pubsub plugin to expose the $.Hub class

this lets you create any number of local Hubs rather than
using prefixed channel names in the one global hub
add tests for the pubsub plugin
v0.0.69 - new $.Hub class implements PubSub
fix a case where isType can fail
v0.0.70 - fix isType crash