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 think there was a reason... but for the life of me, I cannot recall which one. I'll check with Daniele Monday.