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.
if we throw an exception here, don't we skip the whole loop?