Emmanuel Odeke 29471d75cb
common: no more relying on math/rand.DefaultSource
Fixes https://github.com/tendermint/tmlibs/issues/99
Updates https://github.com/tendermint/tendermint/issues/973

Removed usages of math/rand.DefaultSource in favour of our
own source that's seeded with a completely random source
and is safe for use in concurrent in multiple goroutines.
Also extend some functionality that the stdlib exposes such as
* RandPerm
* RandIntn
* RandInt31
* RandInt63

Also added an integration test whose purpose is to be run as
a consistency check to ensure that our results never repeat
hence that our internal PRNG is uniquely seeded each time.
This integration test can be triggered by setting environment variable:
`TENDERMINT_INTEGRATION_TESTS=true`
for example
```shell
TENDERMINT_INTEGRATION_TESTS=true go test
```
2017-12-14 00:18:30 -07:00
..
2017-09-20 02:49:51 -04:00
2017-11-04 00:10:59 -05:00
2017-06-20 17:18:55 -04:00
2017-06-20 17:18:55 -04:00
2017-11-29 12:18:03 -06:00
2017-07-19 15:02:04 -04:00
2017-07-19 15:02:04 -04:00
2017-10-25 11:01:52 +04:00
2017-11-04 08:14:47 -05:00
2017-12-08 11:17:07 -06:00
2017-11-27 23:42:36 -06:00
2017-11-29 05:16:15 +00:00
2017-12-08 10:15:26 +01:00