Merge latest changes from square, leaving only parent-adapters and google-metadata as the difference

This pull syncs all change into google/dagger, leaving the only difference the alternative parent-adapter work by Steven Goldfeder.