Modified bs_get_buffer to return the buffer directly.

I'd like to modify several of the simpler accessor functions to stop having to
return a BSresult. Doing so seems a little forced, especially where it's not
actually possible for anything to go wrong.
Modified bs_unset_buffer to return nothing
Modified bs_save() to write into a user-supplied buffer

Currently all bs_save-type functions allocate a new buffer and return it. This
isn't ideal for a couple of reasons:
 - it's really inefficient if we want to stream things
 - client code must free() the returned buffer, but they never allocated it, so
   it's not obvious that it must do so

The next few commits will modify save functions to make this change.
Converted bs_save_hex to use user-supplied buffer
Converted bs_save_base64 to use user-supplied buffer
Removed unused error condition
Changed bs_stream_empty to bs_stream_reset, and stopped it returning data

bs_stream_empty() returns any unstreamed bytes, but I'm not sure this is a
worthwhile use case to support - surely unstreamed bytes should be processed
tidily via a call to bs_flush()?

I've removed this functionality, and changed the function name to more
accurately express what's going on. This can always be replaced if necessary (I
think it's likely it'll be necessary to provide access to the stream count for
some purpose).