Name codegen synth targets by target id, instead of name.

Before, we were just getting lucky that we didn't have two colliding target names for our codegen targets, but their synthetic targets should be 1:1 with their (language, build file target) tuple.

Testing Done:
CI passes

Bugs closed: https://github.com/pantsbuild/pants/pull/148

Reviewed at https://rbcommons.com/s/twitter/r/398/