Introduce cache.memory_ratio configuration for HPCache

New set-and-forget configuration that specifies cache size as a ratio of the
old generation max size. Memory division across internal components of the cache
is handled by fixed ratios.

If any of the old config (now referred to as "advanced config") is set, it will
override the memory_ratio configuration.
Could the formatting be moved into the constructor of the Exception class, so that the arguments passed in could be valuable. It might for instance be interesting to have the value available through a getter on the exception class.
Doing the string formatting in the constructor also ensures a consistent formatting.