Added redirect parsing to XMLSource.fromXML and made it more consistent.

I need to use `XMLSource.fromXML` for a Spark mapper to parse the raw page strings in parallel. Instead of the sequential `XMLSource.fromReaders` approach, this one is used along with the new XmlInputFormat approach.

Added redirect reading from XML. Now outputs from [distributed-extraction-framework](https://github.com/dbpedia/distributed-extraction-framework/) match with that of [extraction-framework](https://github.com/dbpedia/extraction-framework) when using XmlInputFormat.

Using pattern matching instead of if-else: saves re-computing of xml elements, looks cleaner. Also, this change makes the parsing more similar to `WikipediaDumpParser.readPage()` for consistency by checking for `null` titles and matching namespaces.
@jimkont Yes, that's what happens in `WikipediaDumpParser` [1] too. It propagates through `WikipediaDumpParser.run()` and stops the whole execution. I included that for the sake of completeness, but at least with the liwiki dump outputs match just fine even without these lines.

Should I remove these or keep them?

[1]: https://github.com/dbpedia/extraction-framework/blob/990bc1576007172361e05d3ccec1d53d666bf258/core/src/main/java/org/dbpedia/extraction/sources/WikipediaDumpParser.java#L212