B-62418 RL Supports Multiple Rate Limits & Key Change

Key change includes UUID assignment to each configured limit.

A few things to note:
- A Pair is used in many instances to bind a configured with a cached rate limit. Consider that each rate limit now stores the UUID of its associated configured rate limit, so we could instead search for the associated configured rate limit when necessary. I think using a pair should be fine...
- The id for a limit is not currently configurable (it will always be overwritten by the config listener). It would be simply to allow this id to be configurable.
- RateLimitingTest (functional) currently breaks. I spoke with Dimitry about this, but promptly forgot what we came up with. Ask him, please.
- TODO in RateLimitListBuilder to address the new structure of cached rate limits.The returned limits should be accurate, it's just a matter of formatting the XML that may need to be looked into.

There may be something I missed above. I have notes in the top drawer of my cabinet in Austin, but I won't be able to look at those until Friday/Monday.