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.
unless I'm missing st, all changes to api.js can be reverted, because it already supports GET/POST

this is how it is called (see api.spec.js):

```
api.request(new ApiRequest({target: 'search', query: q, sender: 'woo'}), {done: f, type: "GET"});

      api.request(new ApiRequest({target: 'search', query: q, sender: 'woo'}), {done: f, type: "POST"});

      api.request(new ApiRequest({target: 'search', query: q, sender: 'woo'}), {done: f});

      api.request(new ApiRequest({target: 'search', query: q, sender: 'woo'})).done(f);
```