(PUP-2946) File2 with #compare_stream from 1.9.3

FileUtils.compare_stream in Ruby 2 is broken when comparing
binary file stream with StringIO stream of different encoding.

This change reverts FileUtils.compare_stream to stdlib v1.9.3
implementation.
(maint) Use rspec :if to constrain describe block
Merge branch 'pull-2938'