idml2po: Add initial infrastructure to parse IDML format

This largely mimics current infrastructure to deal with ODF format.
idml2po: Parse just the Content tags and skip CDATA

From our initial researchs the translatable string are only within
Content tags.
idml2po: Actually convert to PO instead of XLIFF
po2idml: Add initial infrastructure
po2idml: Skip first unit when retrieving translated units

This doesn't apply on XLIFF because all units have a source, but in PO
the first unit parsed is the one in the PO header, which has blank source.
idml2po: Record in unit location the file within the IDML it was extracted from

This records a second location on each unit, besides the other location
used to keep the xpath.

This is necessary because the files we are extracting from the IDML packages
have the same root tag, where the ODF packages have a different root tag
for each of the translatable files we extract.

This change doesn't require any alterations in the ODF converters.
po2idml: Open the template IDML sooner to list translatable files

This will allow to add code in next commit for listing the translatable
files in the IDML package.
This is necessary to be able to group the translated units per translatable
file, and thus build the XPathTree objects for each of them.
po2idml: Call build_unit_tree for each translatable file

This is necessary because the previous code were used for ODF, where each
of the three translatable files had a different root tag, where all the
translatable files in IDML use the same root tag, so the code was unable
to create a separate unit tree for each translatable file within the IDML
package.
po2idml: Correctly handle tags without namespace
po2idml: Export CDATA as is
po2idml: Output standalone="yes" on XML declaration
po2idml: Add function to retrieve DOM objects for pounit source and target

Since we want to reuse as much as possible the previous code for ODF, it
is necessary to provide DOM objects for pounit source and target, like
the ones present in xliffunit.source_dom and xliffunit.target_dom.

This change doesn't affect the ODF converters.
idml2po: Completely rework IDML extraction

This correctly converts placeables to X and G tags. It also skips
unparseable tags.

This breaks the ODF tests because part of the code is adjusted to IDML
needs without trying to keep compatibility with ODF. This tests breaking
is fixed in a later commit.
imdl2po: Properly extract Content tags with childs before the text

This applies to Content tags with any child before the text, like for
example processing instructions, or that don't have any text outside any
of its children. Examples:

<?ACE 7 ?>Some text
<tag>Some text</tag>
idml2po: Output correct PO
idml2po: Avoid having repeated ids on the resulting output
po2idml: Adjust roundtrip to handle PO units having XLIFF placeables

Note that this still doesn't output the processing instructions OK.
po2idml: Keep processing instructions unchanged

This is done by avoid setting a new text for processing instructions.
IDML: Get ODF tests working again