Added tree build/init/free functions to fmpz_mod_poly and profiling code for
invert, mul, tree.
add fmpz_poly_bound_roots for bounding the magnitude of the roots
Merge remote branch 'origin/trunk' into trunk
Initial commit for "padic2".

This branch is dedicated to changing the data format and
syntax of the "padic" module to be similar to the ones
used in MPFR.
Bugfix for padic log functions.

The value of the bound on the number of terms to
consider in the expansions of the logarithm was
wrong when p did not fit into a signed logarithm.
a new double_extras module, with a fast Lambert W function
Update for _padic_log_bound.
Improves padic_val_fac.

This includes test code, the actual code, and the documentation.
Rename padic_lifts_XXX to _padic_lifts_XXX.
Ensures the padic docs work with the manual.
Further changes to padic.

Removes _padic_exp_naive as it was not used;
improves documentation (re manual); adds test code
for randtest().
Small further changes to "padic".
Fix padic examples.
Remove an exception print from arith/stirling1.c.

The exception condition "nright < nleft" is equivalent to
"a + b < 2 * floor((a+b)/2)" and hence unnecessary.
Small coding changes to stirling1.c.
Changes exception print statements in arith.
add fmpz_mat_sqr and fmpz_mat_pow
Changes exception statements in fmpq, fmpq_mat, fmpq_poly, fmpz.
Update exception statements in fmpz_mat.
Modifies exceptions in fmpz_mod_poly, fmpz_poly, and flint_malloc.