Perform deep merges when doing Backend::Chain#translate

Currently when requesting a namespace it would give you a union
of the top level keys, but would let nested keys override each other.

As an effect of this, you would be losing translations coming from
a lower-level backend if at least one subkey is "overridden" in a backend
that has higher priority.

This fix ensures that you instead get a "deep union" of all the translation
keys and the merges do indeed get performed correctly not only at the top
level of the namespace but all the way down.