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
do NOT add a methods for mod(x,y::MathConst{:π})
added modpi etc. documentation. Updated the example for round() using non-ten basis
conv and conv2
mod2pi: remove modpi and modpio2, adding a single function to Base.

This is kind of a painful edit since there's a lot of great work in
here, but it's just too much to add three functions to Base. mod2pi
seems like the most sensible of these functions. If we find that
there is great need for the other versions, we can always resurrect
them in the future by the wonders of git history.
rename: test/math-modpi.jl => test/mod2pi.jl, add to test/Makefile
added permutedims!

Separated the permutedims method into a permutedims! method which
stores the permutation a given array into a specified destination, and
the wrapper permutedims which reproduces the original functionality by
creating the required destination storage and then calling permutedims!
on it.
Further changes to permutedims and tests

With this commit, all tests pass. I changed the permutedims tests to
have permutations specified by vectors instead of tuples (which is also
how it is stated in the manual). I also had to make two seperate
versions of permutedims!: when B is a BitArray, P has to be a BitArray,
whereas for B a StridedArray, P should be an Array. I don’t think it is
possible to obtain this behavior in a single parametric definition.
FixedSetPartitions

Functionality for iterating over the partitions of a set into a fixed
number of subsets. partitions(array,m) relates to partitions(array)
like partitions(n,m) relates to partitions(n).
fixed typo in description in manual