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.
I'll ask Richard who originally wrote this.  All this PR does is reorganize existing logic.
If necessary, we can address this in a separate commit.