use Factors to process terms in collect_const

By using Factors, it is much easier to collect negative terms
if so desired since the -1 is always separated from the Number.
But something documented in the code is the desire *not* to let
Integers be divided by radicals, e.g. 2/sqrt(2). Although that
is a legal operation, it would turn 2 + sqrt(2) into sqrt(2)*(1 + sqrt(2)).