Change Blob#from_io to not silently swallow errors.

Also fixes the issue where an error durring the call to #read on the io
object would cause unfinished blobs to be written.