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). 
Hmm,
```
In [8]: x=Symbol('x')

In [9]: y=Symbol('y', positive=True)

In [10]: e=(2*I*pi**2*x*y**2 + pi*y)*exp(-2*I*pi*x*y)/(4*pi**3*y**3)

In [11]: e.limit(x, 0, "-")
Out[11]: 
   1   
───────
   2  2
4⋅π ⋅y 
```
Both in the master and in this branch (for default dir it looks same).  Did I miss something?