Refactor/simplify the way we define and handle channel, cache and cache-container metrics

Defining metrics per resource via enums simplifies things immensely.
Also, some code cleanup:
* Use consistent class naming for resource definitions and add/remove/describe operation handlers.
* Eliminate superfluous static final values.
* Breakup CacheConfigOperationHandlers into individual add operation handlers for cache stores.
* Traverse model via resource paths where possible.
The use of NAME is as a parameter name to a custom add operation for aliases. The issues with the use of not inhehttps://github.com/rachmatowiczriting populateModel() relate to the object inhertitance structure of cache stores, based on StoreAddhandler. I agree this latter could be tidied up, but it is existing code and not really related to the changes Paul is making. I really don't want to hold his commit  up. Tomasz, could we allow this commit to go through and I will address the inheritance structure of the stores in a separate commit (as it should be :-))?