[TASK] Support multiple files, restypes and nested groups in XLIFF

This allows multiple <file> elements in a single .xlf file,
<group> and <trans-unit> elements with and without arbitrary
`restype` attributes, and the possibility to nest multiple
<group> elements.

The parsing of an XLIFF file to the cached array representation
is reworked in order to keep track of <file> elements, but
maintaining the current ability to fetch elements "XLIFF-wide"
by id (however this was never meant to be possible via XLIFF).

Additionally, the [approved="no"] attribute of a <trans-unit> element
is now considered.

Besides, it adjusts the shipped .xlf files of Flow with a more
appropriate root element and the unnecessary and uncovered
xml:space=preserved attributes removed.

Change-Id: I87df8e0256a6297e840b494746c102ab824eb3e0
Releases: master