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.
Right it would be nice to have a list of meaningful validation error messages in that case.