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 added this as a stopgap before changing the CoverageInfo API, but it appears that CoverageInfo contains a redundant ``nativeCoverageName`` field alongside the ``nativeName`` inherited from ResourceInfo.  Are both needed? Can we just get rid of nativeCoverageName?