This patch exposes the ICU facility to add custom collation rules to a
standard collation. This would allow users to customize any ICU
collation to whatever they want. A very simple example from the
documentation/tests:
CREATE COLLATION en_custom
(provider = icu, locale = 'en', rules = '&a < g');
This places "g" after "a" before "b". Details about the syntax can be
found at
<https://unicode-org.github.io/icu/userguide/collation/customization/>.
The code is pretty straightforward. It mainly just records these rules
in the catalog and feeds them to ICU when creating the collator object.