New DeckValidator class

This is the first of what I hope will be many more smaller pull requests to begin to streamline and modularize the python code used in ANR.  

The deck validation process seemed like an easy first-step and place I could jump in on.

I have tested it with several valid and invalid decks and it seems to be duplicating the existing deck validation functionality one-for-one.  All I did was take the same code and refactored it a bit.  

Using OOP-style coding with reusable classes and modules, the code should be able to get much cleaner and more maintainable down the line.  In the end, hopefully the result will be less buggy code that is easier to maintain and extend and less  code of several hundred line functions with a bunch of nested if/else blocks.

Let me know if this is something you are open to in general or not.  I think it will go along way to improving the ANR scripts and also allowing other coders to help you out on the project and fix bugs/issues without you being the only one who really can follow and know how the scripts are working.