Merge latest changes from square, notably compile-testing framework use

Two main Pull Requests represented here:

* square/dagger#311 - Use Google's compile-testing system
* square/dagger#313 - Pull the scope annotation validation tests into a compile-testing style test

Merge commits are excluded.