Algebraic Function Fields

I started implementing algebraic function fields. So far, there is a class for representing an algebraic function field and a method to calculate minimal polynomials. This is based on the work of @pernici from https://github.com/sympy/sympy/pull/2038.
It works in the univariate and multivariate case, i.e.
```
In [1]: from sympy.polys.functionfields import minpoly

In [2]: minpoly(sqrt(x), y)
Out[2]: 
      2
-x + y

In [3]: minpoly(sqrt(x) / z, y)
Out[3]: 
      2  2
-x + y ⋅z 
```
This is still very much work in progress, for example, only simple extensions are supported at the moment and there is no analogue for ```AlgebraicNumber```.
@asmeurer, @pernici, @mattpap maybe you could give me some feedback and advice on how to continue.