Fix for Groovy 5425 (slow ObjectRange.size when using BigInteger)

Added a BigInteger test for ranges (the same as the BigDecimal one)

Added failing tests

Applied the optimisation for BigInteger (following the BigDecimal path)

Are the tests ok?  Not sure I like spinning up threads and checking they return within a specified time, but couldn't think of another test to do?