Make model validation asynchronous
I can't remember the reason I originally created this issue (I think it was something to do with handling errors in Promise chains), and Joi has resisted adding an asynchronous interface, but maybe it makes sense seeing as most of the other methods on Model are asynchronous. Feel free to close this MR if not.
fixes #7