Enforce that store and layer names are xml-safe at the catalog level

As discussed on the mailing list, it is problematic to have layer name that are not XML-safe in GeoServer.  This patch adds a validator to reject such names, and ensures that such validators are enforced in the REST API and web interface.  I think that it still needs a little work to give better errors (right now any validation is reported with a generic "Validation failed" message) but here is the approach.
I was kind of thinking more of just throwing this in one of the RESTConfig base classes, like AbstractCatalogResource. Especially since you are only adding the methods for Store and Resource. Others may feel differently but I kind of like the idea of keeping Catalog mostly CRUD operations and as minimalist as possible.