Documentation improvements and fixes to user provided format_validators

I added a lot of examples to usage.rst, as I had to use this library recently and it was kind of annoying how it wasn't clear how to use a lot of stuff. Also, I noticed that in the constructor to SchemaValidator, if the user provided a custom dictionary of format validators, the 'default validators' would be cleared and the user would not be able to use them, so i made it so that it uses the previously unused 'register_format_validator' for each item in the 'default validators' dictionary, and then if there is a user provided one, we register all the ones in that dictionary as well. No attempt is made to prevent naming conflicts at the moment!