Add optional valueFn to PathObserver

This is the first step towards adding a CompoundPathObserver to observe-js (and removing CompoundBinding from TemplateBind). The motivation for this is to reduce allocation and total number of observers when CompoundObservation is needed.

This step allows for code to special case when there is a conversion function, but only one dependent path.

R=arv
BUG=

Review URL: https://codereview.appspot.com/13208043