Implement custom Sodium::Buffer#byteslice for Ruby 1.8

Ruby 1.8 doesn't have support for String#byteslice. Since it's being
used in a few places now, it's been added to Sodium::Buffer. The current
implementation defaults to using String#byteslice if available,
otherwise it attempts to reproduce equivalent behavior. God knows if
I've gotten the details right.