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.
Demonstrate the issue with --seed=50992

Which is not related to my other branch in any way
Reset I18n.backend to make locale test order-independent

Previously it would fail tests when ran with a certain seed value,
due to I18n.backend containing too many useable translations.

For this test to run with certainty the backend should be re-initialized
to an empty one at the beginning.
Merge branch 'test-ordering-issue' into deep-merges-with-chain-lookup
Merge pull request #296 from julik/deep-merges-with-chain-lookup

Perform deep merges when doing Backend::Chain#translate