Move all public types to separate "lib" package

Moving the base types and also the http wrappers gives
the opportunity consumers to import the package and reuse the types.

* change the sort strategy creation
Merge pull request #12 from soundcloud/lib

Extract the basic types to separate "lib" package
Fix list

Only the file one level under the bucket dir were listed and when in the bucket there is a directory a error is return.

* Add tests for checking if blob in directory in a bucket is listed
Cleanup code

* clean up diskFSList test
* handle error in provider walk
* document public vars properly
* move main.Main to main.go
* remove inline copyright
Merge pull request #14 from soundcloud/cleanup

Cleanup code
Bump version
Return correct error code when file is missing

So far there wasn't a check if the returned error when opening a file is
indicating that the file doesn't exist. If it doesn't exist we want to
return 404 instead of 500 as it communicates more clearly.
Merge pull request #15 from soundcloud/fix-return-code

Return correct error code when file is missing