Make Validator interface generic with template
Fix style errors
Merge pull request #203 from takahi-i/genereric-validator

Make Validator interface generic with a template