(PUP-3332) Add a value? method for auto insync?

This patch adds the ability to use value? in your provider instead of
needing to add the insync? method to your type.

The group provider needed to be modified since it already defined a
groups? method for one of its properties.

Example:

def value?(is)
  <some logic here>
  return <logical value>
end