Unreverting "Fix i18n/backend/key_value to add data in a array"

The problems it caused, from what I can tell, is that it didn't handle
subtree support properly. This commit readds the array handling, and
fixes subtree merging.