Added BiDictionary and XmlDataReader

Added a BiDictionary that stores two dictionaries one where <TFirst> is
the key and one where <TSecond> is the key.
Added XmlDataReader an adapter to IDataReader that lets you stream xml
data