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. A mecanism handling not-implemented types
  should be added.
* A type RandIntGenBigInt similar to RandIntGen (both subtypes of
  RangeGenerator) has been introduced to handle rand on big ranges.
  The generic function to construct such objects is named inrange.
  Note: mpz_import could be replaced by mpz_limbs_{write,finish}
        when GMP version 6 is used.
* BigInt tests from commit bf8c452112 were re-added.