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.
It would be nice to use the same trick here as for mandatory settings in the `Settings` class, of explicitly allocating a `new String( "__DEFAULT__" )` and then do instance equality comparison. This would allow us to reject users specifying the value of `__DEFAULT__` to the setting.

An unfortunate side not: As of [149d2e4](https://github.com/neo4j/neo4j/commit/149d2e453807d2df90667337ebb9a22e07f9066d#diff-a91d749ea69ff9e0ef245fdfeb3149b7L105) the comparison of `MANDATORY` no longer works this way, meaning we are unable to have settings with a default value of `"mandatory"`.