add the ability to specify the address of a native function as a finalizer
the advantage of this is that we know no julia code runs, so it is safe to
free the underlying object immediately, rather than waiting for another GC
cycle to be sure no references to the object were added.

this is specifically designed for BigInt and BigFloat, which get faster and
use less memory with this change (helps #4169)
initial revision
include modpi etc. in the documentation. Don't export pi-related constants.
for modpi(Int64), we check that the argument converts to a float64 losslessly, and throw an error otherwise.
hardcode pi-related constants. Extend mod2pi, modpi, modpio2 to Ints.
made a few constants const across the file
Merge branch 'master' of github.com:JuliaLang/julia into jb/nativefinalizers
Define modpi etc. for Float32, Int32, Int64. Add tests.
added math-modpi to runtests.jl, add math-modpi to the repository
more tests, fix typos (and that's why we have tests...)
specify libm library when calling rem_pio2
refactored testcases into one nice little array, no more eval/parse/regex
Adds random number generation for BigInts from GMP
do NOT add a methods for mod(x,y::MathConst{:π})
Refactor BigInt RNG
Add a default BigRNG and the standard interface to seed BigRNGs
Add BigFloat random number generation
Improved support for random BigInt ranges

This means that ranges between numbers bigger than `typemax(Int)` work
now, but range lengths are still limited to up to `typemax(Int)`.
Add normally-distributed BigFloats generation
added modpi etc. documentation. Updated the example for round() using non-ten basis
conv and conv2