Modify API to be asynchronous

This is a non-trivial rewrite that will be released as v1.0.0. Changes include:
* removal of `resolveFileSync `
* `resolve` and `resolveFile` now have the signature `function (data, errback)`
* handlers are backward compatible, so now support an optional errback: `function (value, [errback])`
* all handlers resolve asynchronously regardless of whether or not they are written as such.
* XXX: Removal of the "chaining" feature that allow clients to specify a protocol chain in a value.
* fixes bug wherein parent handlers were not correctly being traversed
* `unuse` works properly.