Added XmlSettings (equivalent of JsonSettings)

The XmlSettings is to allow setting default options when serializing xml. In my use-case, setting the Encoding.

I've added a boolean property EncodingEnabled and defaulted it to false so as not to break any existing usages. Other than that DefaultEncoding is set to utf-8 just like JsonSettings.
Aligned XmlResponse and JsonResponse
CaptureNodeWithMultipleParameters should use case insensitive regex
GreedyCaptureNode should be case-insensitive
Use case insensitive comparer in TrieNode.Children dict