fix #9214: canonicalize CompoundPeriod
throw MethodError, not ArgumentError, for undefined Period/Time/Date operations
Merge pull request #9218 from stevengj/period_methoderror

throw MethodError, not ArgumentError, for undefined Period/Time/Date ops
Bump OpenLibm to 0.4.1.
Use openlibm on ARM.
juliatypes.jl: complete subtype algorithm

I believe there are now no more known-unhandled cases. There might be
bugs and it might be highly inefficient. The bookkeeping for the
search problem is quite tricky.
Merge branch 'master' of github.com:JuliaLang/julia
implement rand(::Range{BigInt})

* Previously, calling e.g. rand(big(1:4)) caused a stack overflow,
  because rand(mt::MersenneTwister, r::AbstractArray) was calling
  itself recursively. This is fixed here, but a mecanism handling
  not-implemented types should be added.
* RandIntGen is renamed to RangeGeneratorInt.
* A type RangeGeneratorBigInt similar to RangeGeneratorInt (both
  subtypes of RangeGenerator) is introduced to handle rand on
  BigInt ranges. RangeGenerator is the generic constructor of such
  objects, taking a range as parameter.
  Note: two different versions are implemented depending on the
  GMP version (it is faster with version 6 on big ranges).
* BigInt tests from commit bf8c452112 are re-added.
Merge pull request #9122 from JuliaLang/rf/rand-bigrange

Implement rand(::Range{BigInt})
fix #9216: more consistent units for Period arithmetic
Merge pull request #9220 from stevengj/periodarith

fix #9216: more consistent units for Period arithmetic
Merge commit 'refs/pull/origin/9217'

Conflicts:
	base/dates/periods.jl
Make copy! methods consistent, fix copy! bugs