Canon

This implements canonical callbacks.

There are two new patterns.

(1) If the last parameter provided to a method is a function, the call will be executed immediately and the callback called as cb(err,data)

(2) If call is created as before but .exec(cb) is called with a function as a parameter then error and data will not be emitted, results will be called back as cb(err,data)

I've added tests for index/search/get/update