Let UnevaluatedOnFree.apply return None to not evaluate
Rename register_handler to register_fact
Allow to initialize ClassFactRegistry with a dictionary

Unfortunately, we can't write the facts in the code as a dictionary, because
we need to use duplicate keys.
Allow to set the number of iterations of fact generation in newask
Add CheckOldAssump facts to newhandlers

Currently, the facts about positive, negative, etc. for numbers are explicitly
written in the old assumptions, so this makes sense. Actually, probably we
will keep the old assumptions API for the new assumptions, in which case, this
is exactly how things will be done (modulo changing the definitions to the new
assumptions ones).

For now, only use this for Number classes.