Ramaciotti

Merged pull request from #107 to branch to allow fixes: 
See comments addressed there.

@ramaciotti Things that need to be addressed from the PR:
* Single line statements without braces, please.
* Ensure 100% test coverage
* Fix duplication checking for empty input and comparing change.- pending cleanInput check
* Make sure that allow empty stays or goes - pending all allow blank

Respect cruft to address that came along the patch:
* Why check `$cleanedInput` against `$input` and is a blank string?, empty is enough?
* Normalize behaviour ensure empty strings are valid for all rules but nonEmpty, correct?
* Make proper Abstract classes obfuscate the properties instead if still required.
* Add @expectedExceptionMessage to Exception unit tests
* Separate the Format, Ctype, and Filter Additional Chars functionality into separate classes and extend properly.
* Use inheritance only overwrite where applicable
* Implement the actual Validator example unit tests (one file per category?) ala Respect/Doc style