Add C extension for direct manipulation of memory

Sodium::Buffer should be able to implement tasks like direct string
modification and XOR quickly, without having to unwrap layers of Ruby
indirection.

Two functions, sodium_memxor and sodium_memput have been added to allow
for fast string XORs and fast string byte replacement (respectively).
Implement Sodium::Buffer[]= on top of Sodium::FFI::Memory#sodium_memput

Sodium::Buffer[]= will be incredibly useful to have for performant
buffer manipulation (by avoiding having to repeatedly allocate and
concatenate strings). It has been implemented on the new memput function
exposed through C.
Implement Sodium::Buffer#lpad, #rpad, #ljust, and #rjust

Padding and justification of an input string are useful when creating a
Sodium::Buffer. Performing this step at creation time is faster and
saves allocations versus creating a buffer and making a larger one with
the appropriate size later.