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.
No, CloudFiles doesn't behave that way, and our existing code doesn't behave that way or depend on that behavior.