Compute on scalar expressions

closes #474
Slight issue here is that not all `UnaryOp`s provide an `op`.  For example `sin` is a `UnaryOp`.  This is probably an issue with how Scalar Exprs are laid out and could be made cleaner.