Metrics

Hi Roman, Can you take a look at this when you have the chance? Everything passes except I need to add some tests for api.js, (coverage tragically fell by 4%) but I don't know what the best way to write the test would be. Also, please look to see if my changes to api.js were like you wanted.

While my tests pass, I have not been able to test it in bumblebee much because the metrics service has been down today. So please don't merge until I have a chance to try it out on different types of queries.
I see that you can pass in options to the api.request function to override
the defaults, but how do you get those options from the widget to
api.request through the pubsub?

A first I thought it would be something like:
this.pubsub.publish(this.pubsub.DELIVERING_REQUEST, request, {method:
"POST"}) but then I realized that it didn't work that way.

I know I'm missing something super obvious, but I couldn't figure it out,
so I added the ability to specify the options in the api request.