Adds the ability to patch together two XMLFiles using the [RFC 5261](http://tools.ietf.org/search/rfc5261) with handling of Add, Replace and Remove for nodes and attributes. No handling has been added for namespace::prefix modifications at the moment. Use pass by value on sub-functions of add since gcc thinks there is no suitable conversion, where msbuild optimizes it out.

There are some gotchas with this, XML does not allow two text nodes (pcdata or cdata) to follow straight after each other, in those cases the two nodes will be merged with their text combined either at the start or end depending on the positioning of the two nodes. Secondly you can only select single nodes at a time, however xpath provides a way to specify a certain node if a query would return using more than one like so
```xml
<add sel="/doc/data[1]>...</add>
```
This would select the first data element that was found under doc.
Merge remote-tracking branch 'remotes/alexparlett/feature/xml-diff-patch'
Minor code formatting. Added mention of RFC 5261 to XMLFile::Patch() Doxygen comment.