Factors accepts Expr; as_powers_dict returns int-based defaultdict

`as_powers_dict` didn't play nicely with Factors because for Mul,
a list-based defaultdict was returned. It now returns an int-based
one like Add does.

Docstrings for exprtools Factors were added.