Carton support

This change requires apps to freeze app dependencies with carton (and check in `carton.lock` in the git repo), then release a web app that uses `carton exec` to run starman.