unit management

Unit validation is now allowed at the calculation level. The
`cfunits` property of `Variable` was changed to allow `None` units
(i.e. dimensionless). Doc changes included.

Closes #183.