Cover all the api... so far.

And do it with Backbone, which is actually quite hard to design. Backbone isn't
really intended for api libraries and I'm not sure if this is a good idea...

Signed-off-by: Tim Smart <tim@fostle.com>