Linq-like expressions, refactors, email validator, and list -> dictionary.

This feature set will include linq-like expressions to cut down on some of the magic strings required to make it work.

I removed/changed a few exceptions.  Some exceptions weren't being used and I created a new one.

Instead of try/catch on a mail class to validate an email.  I've pulled in the regex from jquery validate.  This is a common tool used to do validation on forms.  It's best to try to match front end validation as closely as possible, in my opinion.

I've added a way to build a pretty field name on the fly if not provided.

Lastly I changed the list datatype to a dictionary because dictionary is a much faster datatype for traversing by key.