Fix relativity of antlr sources

This fixes an issue where CacheValidator's source hashing was failing on
the synthetic targets generated by AntlrGen, since the assumed source
paths mismatched the actual generated paths.

- Adds an integration test for antlr4 codegen
- Uses sources_relative_to_source_root for the assumed output sources,
  and fixes the synthetic source root for the antlr output. We can't
  control antlr's output relative paths very tightly, so we can't use
  the output directory directly as a sourceroot.