Added rand methods to Iterator.

This change adds rand methods to Iterator similar to those on List.  A single item is chosen from those iterated over with uniform probability.

Inspired by this blog post on sampling a stream of unknown size: http://jeremykun.com/2013/07/05/reservoir-sampling/