Merge changes from square/dagger

Merges several CLs that are part of square's dagger project into the google fork.