TypeStringMap
Building upon the previous commit, introduce `TypeStringMap` which is a container for type-wise strings.
FunctionStringMap
Generalize `FunctionStringMap` into `detail::GenericStringMap`, which supports any `Depth=1` rank. `FunctionStringMap` remains as an `using` with `Rank = ranks::Function`.