create FromOption class for from behavior

Adding the '.' configuration for from required modification of the
watcher pattern in addition to matching. This change creates a class to
stick all that related behavior into. There is still some tangling with
other options, but this at least keeps all the :from stuff in the same
place.