This contains some early work on the API, and accepts streaming PUT requests in a simple way. It's not so clean yet, but I want to commit here before doing some expansion and refactoring.