3693: don't let function evaluate bad args; sign evaluates all args

sign and Abs are using eval to process args, so a Mul must be
handled first or else individual arguments that might simplify will
not be simplified (as the test shows now).
refuse the temptation to guess with Float and prec-1

The added inline note explains the rationale for this change.
update Float._new since Float(Integer) returns Float

Also, add more to the docstring of mpf_norm regarding what
it does and doesn't do.  Here is an example of ill-formed
mpf's giving bad results:

>>> mpf_norm((3,123455,0,4), 3)
(1, 1929L, 6, -2)  <======= negative bitcount
>>> mpf_norm((3,123455,0,22), 1) <====== hangs

Both of these problems would not occur if the proper bitcount
of 17 were used instead of 4 or 22

>>> mpf_norm((3,123455,0,17),3)
(3, 1, 17, 1)
>>> mpf_norm((3,123455,0,17),1)
(3, 1, 17, 1)