Refactor for custom buildpacks

We extracted the file upload logic into an UploadHandler, and we extracted the basic logic around the blob store into its own class.

Eventually that class could have more responsibility as far as blob store management goes.