Added Character Set Validator

- [x] implemented character set validator with tests
What do you think of the efficiency of this vs. using something like `-[NSScanner scanCharactersFromSet:intoString:]`. 

My guess is that the way you did it is the better way, but I don’t know how expensive it is to invert a character set. Character sets are potentially just huge bitmaps, but they obviously do some stuff to make this type of thing more efficient. 

Anyway, I’m not sure which way to go. If you do stick with this, what do you think of making the invalid character set a lazily-created and cached property?