client: adding emit calls for items added to the queue

So that other modules can listen for calls to the client, like in
analytics.js

```
  client.on('track', function (message) {
    // do some stuff
  });
```
client: emitting events on api calls

So that other modules may listen to them, analytics.js-style

```
client.on('track', function (message) {
  // ...
});

client.on('push', function (message) {
  // ...
});
```