Fix issue #43, and cleanup other conj usage

Previously, the 'conj' parameter for Expression factor method would be
passed to all recursive calls to factor. This doesn't make a whole lot
of sense for lots of operations, so the change is to just have a
selector for whether the top-level function returns an And-form or
Or-form.