Add ability to specify validators via instance method

@jnjosh Please review. I'm unsure if this is a good design, but I think it makes sense and allows for validators that can change at runtime based on object state without breaking existing code

Why not use -capitalizedString or -capitalizedStringWithLocale:?