Display(Order=) Attribute support to improve column ordering

Replaced the stock reflection .GetProperties with an ordered properties
that respects the Display(Order=) data annotations for easier ordering
of columns.  A reference to system.componentmodel.dataannotations had to
be added to the project as well.