Better handling of custom block type templates

Let's implement a library to hold custom templates of block types.
This optimizes the custom template management functions, and allows translating their displayed name.

Replaces https://github.com/concrete5/concrete5/pull/1601

See also https://github.com/mlocati/concrete5-localizer/commit/d555edccdbde98830611f981918ae680e9747216