!hco #15635 reorganize registration of predefined, custom HTTP primitives + other small improvements

Fixes #15635.

@richdougherty can you check if that would work for you?
> If we add a require in HttpMethod.custom it should be impossible to construct HttpMethod instances with names that are longer than the limit, no?

Exactly, that's an argument for me to do no validation in `custom`. I'd rather make the length configurable and throw a descriptive error message in the check here about how to increase the setting.