Move to lxml from using libxml2 directly

lxml (http://lxml.de/) provides easy to use XML bindings that still uses liblxml2 and libxslt

Initially I had started cleaning up the XML handling in the TDL class but ended up moving to lxml when I realised it would end up being just as much work and also would provide us with python 2 and 3 support and it's pip installable. Handy for removing the libxml2 hack from the Travis PR. Brings us that much closer to run a Python 3+ test all the way through

Does RNG validation on TDLs.

This includes the Travis PR (#132) to show test results of the parser switch and will be rebased if that gets accepted. #128 also includes a lot more XML tests, getting that in first would show pretty well that the XML parser switch won't affect much on the parsing / generation side of things. A few of the tests from #128 will have to be updated for lxml as lxml insists on a encoding (Does ASCII if None is passed).