Drop GetText usage in tinyxml

The GetText() function of TinyXML internally grabs the child element (if it exists) and returns it's value.  Thus, it can return NULL.  Further, it's not particularly obvious when reading the code that it's doing this.

This PR drops usage of it in favour of the plain `FirstChild()->Value()` or `FirstChild()->ValueStr()`.  This makes the obvious checks of `if (FirstChild())` or `if (!NoChildren())` more transparent.

There's a few potentially changed behaviours here that will need reasonable review, but I believe they're fixes.
1. CDAVCommon::GetStatusTag() had an odd for loop over FirstChild()->ToElement().  Potentially this would be a NULL ptr dereference.  I've changed it to use FirstChildElement() instead.
2. CDAVDirectory similarly iterated over TiXmlNode's while in all branches calling ToElement(), again without NULL checking in some cases.
3. CFanart there's a change of behaviour so that
```
<fanart url="foo">
  <thumb></thumb>
</fanart>
```
now does not return `url`.  This was never the intention.  The URL is always the value in the `<thumb>` tag, potentially with `url` used as a base URL.
4. Keymap reading of XML attributes/elements was previously case-insensitive, now case-sensitive (they're all lower-case anyway).