Improve message split generation

This changes the message splitting code to ensure that a translation
is generated for every different key using a specified language as a
fallback if no translation is available.

This also allows for a messages to be generated when there is no
fallback at all and when the translation is the same as the fallback
language