Adds storage driver interface, tests, and two basic implementations
Slight additions/modifications to the test suite
Add s3 driver for the new Storage Layer API
Uses streams internally for ipc Get/Put Content

This is done because libchan/spdystream does not currently support sending
serialzied objects of size larger than 16MB
See https://github.com/docker/libchan/issues/65
Unify permissions settings
Merge pull request #3 from AndreyKostov/next-generation

Preliminary s3 driver implementation
Adds conditional SkipCheck for storage driver tests
Adds StorageDriverFactory, unifying creation of StorageDrivers

Custom storage drivers can register a factory to create the driver by
name, similar to the database/sql package's Register and Open
factory.Create returns an in-process driver if registered or an IPC
driver if one can be found, erroring otherwise
This standardizes parameter passing for creation of storage drivers

Also adds documentation for storagedriver package and children
Updates documentation to follow godoc conventions
Adds README for the storagedriver package
Removes WrapReader boilerplate for updates to libchan

libchan now supports io.ReadCloser and io.WriteCloser, so we don't need
io.ReadWriteCloser wrapping
Uses IsTruncated and NextMarker for S3 list internal pagination
Fixes documentation to show that StorageDriver.List is non-recursive
Merge pull request #643 from BrianBland/next-generation

Adds storage driver interface, tests, and three basic implementations