Require wire_name's to be unique

Update ThriftValidator to require that no two fields in a struct share
the same wire_name (and that you can't have wire_name X if there's a
field X with no explicit wire_name).
move repeated wire_name validation to ScalaClass

hard bits are for testing:

- make ThriftCodegenTest that calls into ThriftCodegen to get a
  ScalaProgram
- expose a method on ThriftCodegen to make that test easier.
- make a new directory and sbt sub-project for this test
Merge pull request #6 from nsanch/master

Require wire_name's to be unique