Add a generic format validator

- will allow users easily create custom content validations
- should dry up other validations by providing a reusable base