Bug Fix (upload content length) and Enhancement (File Splitting)

- Bug Fix: headers for setting content length in upload were not actually being used
- Enhancement: Introduces API for splitting a file into blocks; provides one implementation of the API to split a file into uniformly sized blocks

DEPENDS: PR #24 
Starts Resolving Issue #22 
We do require it to be bytes; that is why this particular call in the shell where it is reading a file to make a block uses encode() which converts the data from string (str) to bytes using a strict UTF-8 (default arguments of encode) format; it's not ASCII conversion. May be we could add options to specify which conversion method to use?