implement AWS S3 CRUD API

We'll want to replace all the existing uses of underscore to lodash (a superset of underscore), but I'm holding off on filing the ticket until this merges.