Added Xml Source as an extension.

In order to be able to pass Xml as a source added an extension for XML source. The source object has to be XElement.
Added System.Xml.Linq, System.Xml references to a formatter.
I think I have an idea how to fix it. What if I move this ```Count == 1``` from XmlSource to a formatter. Like this (see /*new code*/ for what is added to ```EvaluateFormat```):
```c#
        public void EvaluateFormat(object current, Format format,
            ref bool handled, IOutput output, FormatDetails formatDetails)
        {
            XElement currentXElement = null;
            if (format != null && format.HasNested) return;
            /*new code*/
            var xElmentsAsList = current as IList<XElement>;
            if (xElmentsAsList != null && xElmentsAsList.Count > 0)
            {
                currentXElement = xElmentsAsList[0];
                handled = true;
            }
            /*new code*/

            var currentAsXElement = /*new code*/(currentXElement) ??/*new code*/ current as XElement;
            if (currentAsXElement != null)
            {
                output.Write(currentAsXElement.Value, formatDetails);
                handled = true;
            }
        }
```

Having that in place it is possible to use both {FirstName}, or {FirstName.0}, they both will result into 1st element no matter if there is one <FirstName> element in xml or many. What do you think about it? Let me commit it and you review the code and new tests.