Move the UnaryFunctors to the public/protected interface

The one thing I'm not sure about is whether the arguments to the ::scalar and
::vector methods should be values or references.  For sure the oVar should be a
reference as it might be just a scalar.