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.