Make PredicateName more flexible

It can now report offense for a name like `has_something` without
necessary suggesting the name `something?`.