Add constructors to TopLevelError
Replace string with constant.
Adding utility classes to compare and compute hashcodes

AutoCompare and AutoHashCode will use reflection to parse a class
looking for methods annotate with the Field property.