Issue/master/pup 2946 filebucket encodings

This pull request adds an implementation of `#compare_stream` that will properly compare the binary values of two IO streams.
the `fu_` methods (that's a funny prefix for a method) haven't changed since 2005; we are using internal methods but I think that they won't be changing any time soon. Do you think it's better to avoid the risk?