mpoly
-----

* setting coefficients to zero should result in a shift of coefficients

* setting a coefficient beyond the end of a polynomial should throw

* scalar multiplication and multiplication should remove any resulting
zero terms when working over a residue ring

Build
-----

* Remove dependency on git on Windows

General
-------

* add lots of tests for exceptions and special cases dealt with in code

* don't use isequal; in Julia it's for objects that hash to the same value

* fix issues with stack overflow on nonexistent operators

* rename primpart to primitive_part

* Optimise for monomials in polynomial modules, especially powering

* introduce CapRelSeries abstract type

* extend documentation for absolute power series

fq_poly.jl / fq_nmod_poly.jl
----------------------------

* divexact is missing along with numerous other things provided by generic Poly

* division is currently using basecase instead of divide and conquer

nmod_poly.jl
------------

* Add constructor for array of ints

* Use Int throughout instead of UInt and allow modulus only up to typemax(Int)

fmpz_mod_poly.jl
----------------

* Add constructor for array of ints

Poly.jl/fmpz_poly.jl
--------------------

* Fix printing of monomials, e.g. y + (x), y + (6)

* Fix efficient powering of x in flint specialised polynomials cases

* function to convert poly to array

* check flint pseudodivision really returns a result with the power of L as defined in the nemo docs

* check the resultant and bezout functions for flint polys work correctly for nonmonic polys

* correct description of bezout for nonmonic polys

* Should mod be defined for polys over ZZ where the divisor is monic?

* implement fmpz_mod_poly_get_str_pretty and use it in show

* Add generic multipoint evaluation a la ArbPolyRingElem evaluate(x::ArbPolyRingElem, b::Vector{ArbFieldElem}).

* Add generic function for constructing a polynomial from its roots, a la the
ArbPolyRingElem function from_roots.

* implement Sylvester matrix version of generic resultant

* add the tricks used in SparsePoly for gcd (subresultant algorithm) to Poly.jl.These include finding obvious content and removing it using exact divisions,
and evaluating at random points at the start to determine the likely degree of
the gcd, then replacing the last pseudorem with divides.

Residue.jl
----------

* Make powering do its own powermod

* implement divexact by an invertible integer, etc

FLINT
-----

* allow fmpq_sqrt_series to take square constant coefficient

* fix printing of parentheses in polys over finite fields

* document and test fq_poly_scalar_div_fq

* add fq_poly_scalar_div_ui/si/fmpz

* implement print_pretty_series (reverse order of coeffs)

* suppress printing of 1 coeffs in fmpq_poly_print_pretty

* fmpq_poly_inv_series can be faster than Sage's power series inversion

* handle monomials and binomials optimally in powering, composition, division
  etc. in polynomial/power series functions (over Z, Z/nZ, Q, Fq)

* Print pretty for fmpz_mod_poly

* Inflate/deflate for fmpz_mod_poly

* Interpolate for fmpz_mod_poly

* factor_get_fmpz_mod_poly for fmpz_mod_poly (inlines.c)

* gcdinv doesn't exist for fq_poly and fq_nmod_poly

PowerSeries.jl
--------------

* allow division by power series with non-invertible leading coeff if division
can still be performed

* ensure exp is only defined for rings in which division by an integer is
possible

* store relative power series in valuation/unit (i.e. relative) form instead of
current absolute form

Fraction.jl
-----------

* canonical_unit for fractions is odd for (1//(x^2+1))//(2//(x+1)) over
  rationals

nf.jl
-----

* find way of allowing number_field to take a polynomial over Z instead of
  over Q, and yet allow all the coercions from that ring into number fields
  maximal orders, ideals, etc., without making it inefficient

nmod_mat
--------

* fix _checkbounds and related functions

* implement missing functions from generic matrices

fmpz_mat
--------

* fix _checkbounds

ArbFieldElem/AcbFieldElem(_poly/mat)
------------------

* add hash functions

* add missing ad hoc operators

* document flags for roots() in AcbPolyRingElem

Matrix.jl
---------

* Add rref_with_transform
