xliff2po: Add support to convert XLIFF files with .xliff extension

Fixes #3202.
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.