placeables: Correctly insert at an existing parent if appropriate

At the end of a string (Case 2) the undo of a deletion of a placeable
(e.g. an XML tag) would be restored as plain text instead of part of
the existing tag. This is a reintroduction of bb04ce073 with updated
tests and error checking.
Simplify file discovery

This avoids a lot of unnecessary paths, while still allowing all ways
we expect it to work. This should help somewhat with startup performance
on both Linux and Windows.
Output xml declaration for Qt Linguist files (fixes #3198).

I tested multiple versions of lupdate with the following source file
(main.cpp):
  #include <QDebug>
  #include <QCoreApplication>

  int main(int argc, char *argv[])
  {
    QCoreApplication app(argc, argv);
    qDebug() << QString(QObject::tr("A String"));

    return app.exec();
  }

Invocation of lupdate:
$ lupdate main.cpp -ts de.ts

lupdate (5.3.1):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
    <name>QObject</name>
    <message>
        <location filename="main.cpp" line="7"/>
        <source>A String</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>

lupdate (4.8.6):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
    <name>QObject</name>
    <message>
        <location filename="main.cpp" line="7"/>
        <source>A String</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>

lupdate (4.8.1):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
    <name>QObject</name>
    <message>
        <location filename="main.cpp" line="7"/>
        <source>A String</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>

lupdate (4.6.2):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
    <name>QObject</name>
    <message>
        <location filename="main.cpp" line="7"/>
        <source>A String</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>
Remove workaround for lxml < 2.2.0 and update README.
README: Remove reference to old lxml versions