Update from internal

We fell out of sync which has made it difficult to do other things, so I ran through and synced everything out. I only had to do a little bit of extra work at the end to make sure our tests passed here.

cc @jeffmo @amasad @fkling