Feature/meta

Closes #241

* Adds support for storing arbitrary metadata on Joi schemas via `any.meta(obj)`
* Meta can be retrieved in the standard fashion through `any.describe()`
* Adds support for shallowly describing objects if that's needed `object.describe([shallow=false])`