Pubsub (ready)

This is just the pubsub system, not using it anywhere yet.

The idea is that this is a singleton pubsub for the entire library. In its current form all events would need to be scoped to a particular graph. Perhaps we should add that as a feature to the pubsub itself?

Anyway, usage is something like this:

``` JavaScript
define(['events/pubsub'], function(pubsub) {
  ...
  line.pubsub = pubsub;

  line.pubsub.sub('someTopicName', function(arg) {
    // do callback stuff
  });
  ...
});
```
In other code:

``` JavaScript
otherComponent.pubsub.pub('someTopicName', { foo: 'bar' }, moreRandomData);
```