Make the tests for Stack much more heavy duty
Change arbitrary instance for Stream to generate cyclically
Revert to non-cyclic arbitrary streams

This reverts commit f5a6613edc7b6f15c33c4e661d940572d536c3af.
Fix bug in which take/drop might infinitely loop (dunce)
Fix bugs in stream equality property in testing
Tweaks to arbitrary instances for Stream
Tidy up testing, and remove non-terminating tests
Start adding tests for Stream itself

 * Move actual Stream stuff into Data.Stream.Internal, which is
   getting big.
 * Data.Stream is now a transparent re-export
 * Add special stream generating functions
 * Add special stream testing properties (e.g. equality property which
   tests random prefixes).
 * Change CoArbitrary instance to cheat in order to make it a state
   changing loop rather than composing hundreds of functions.
 * Make the choice of how far to check into a stream for equality more
   nicely dependent on the size parameter.