Added Joi.async() method:
Joi.async(function (value) { return error || null; });
Joi.validate(..., callback);
Calls the callback with the result instead of returning it.

* Any errors returned by the supplied function need to be cast to Joi's error format
* Don't have any idea how this behaves if you nest things in arrays
* Don't understand what to do about tests and coverage