Introduced TypeResolutionTable.
Verified that TypeResolutionTable is a TypeResolver.
Added a Guard Clause.
Added a Guard Clause.
Moved example UserVisitor to a public class,

because there's no particular reason it should be a private class (it has
good enough invariants to be public). Additionally, it's less confusing
for documentation purposes, because this enables the documentation to talk
about the UserVisitor in isolation from the User class, without confusing
the reader with the fact that it's a private class.
Changed generic type argument on AtomEventObserver

to also use IUserEvent.
Introduced TypeResolutionEntry.
Verified TypeResolutionEntry Properties.
Verified TypeResolutionEntry Guard Clauses.
Added XmlNamespace property to TypeResolutionEntry.
Added a Guard Clause.
Added LocalName property to TypeResolutionEntry.
Added a Guard Clause.
Added Resolution property to TypeResolutionEntry.
Added a Guard Clause.
Added Entries property to TypeResolutionTable.
Added a Guard Clause.
Returned resolved type in TypeResolutionTable.Resolve.
Satisfied the ITypeResolver protocol, by throwing an appropriate exception when doesn't know how to map input to a proper type.
Documented TypeResolutionTable class.