A modest proposal for fixing old assumptions before the release

Here is a more modest version of https://github.com/sympy/sympy/pull/8134, which I can hopefully finish up soon so we can get a release out. That PR should still be finished, but I don't think we should block the release on it.

So far I have my improvement to the facts algorithm. The tests all pass. Travis times are pretty variable, but comparing https://travis-ci.org/asmeurer/sympy/builds/38447593 to https://travis-ci.org/sympy/sympy/builds/38807940 it seems as if this is no slower, and possibily even faster. 

I will also cherry-pick the fix for `finite -> !infinite`, as this is a new predicate and we should get the facts for it right the first time. I will also see if `complex -> finite` doesn't need too many fixes. The rest require too many fixes to finish in a reasonable amount of time (and anyway, I think it would be better to make all breaking assumptions changes in one release). 
Perhaps, this is due to heuristic() as well.  We should check for Limit instances instead of catching PoleError's.