Subfolder support

This adds support for creating intermediate directories if the StorageObject represents a local file and the intermediate directories don't exist, which mirrors the behavior of CloudFiles.

It does not add symmetrical support for FTP, because we don't use it, and it would be more complicated (and potentially subject to odd FTP server behaviors, as well).

@ustudio/dev Please review.
do you want to include asserts/calls to mock_open?