Make generator jar executable

Make the generator jar executable so that it can be used by (for example) sbt-scrooge.
Move junit dependency to test scope

Junit is not needed at runtime. This specifies test scope for junit.
typofix for readme

RB_ID=116904
I am using a lazy getter instead of the current generation mechanism which throws java errors upon a client instantiation.  The order of operations makes the stats object initialize before the statsReceiver is assigned.
minor pom fix to release 3.0.3
Merge pull request #35 from erikvanoosten/patch-1

Make generator jar executable
Merge pull request #36 from erikvanoosten/patch-2

Move junit dependency to test scope
Union with primitive type fields did not work in Java code. This is because the generic Union constructor takes in the initial value as an object, then do a type cast to its proper type. When the field type is primitive, the type cast is not allowed. Eg:

   public NaughtyUnion(
     Field setField,
     Object value
   ) {
     if (value == null)
       throw new NullPointerException("Cannot construct NaughtyUnion with a null value");
     this.setField = setField;
     this.value = (setField == Field.VALUE ? (Naughty) value : null);
     this.field = (setField == Field.FIELD ? (Super) value : null);
     this.id = (setField == Field.ID ? (int) value : null);
   }

 [ERROR] /Users/csong/workspace/scrooge2/scrooge-generator/target/test-sources/thrift/java_def/default/NaughtyUnion.java:[128,44] inconvertible types
 found   : java.lang.Object
 required: int

I think the solution is to get rid of the public generic constructor. Users must call the static constructor methods in order to instantiate a Unoin object of a specific field type

RB_ID=117890
simplify Java union code
This example didn't work for Java
union foo {
  1: BarStruct value
}
because of naming clash: a general "getValue" method was generated and a specific one for the field "value".

I think a lot of the code in union.java is from Apache Thrift's TUnion APIs. Since we don't implement TUnion, I think we can get rid of them.

In the future though, we'll probably make Scrooge types extend TBase. In that case unions do need to implement TUnion. But this decision has not been made, and if it is, the changes would be across the board.

RB_ID=103926
dry-run option: parses and validates source thrift files, reporting any errors, but does not emit any generated source code.  can be used with --gen-file-mapping to get the file mapping

RB_ID=119384
Referencing constants defined in the same file
We couldn't refer to the constants defined in the same file. This is because we didn't resolve constants on RHS.

I think the type resolver implementation was wrong to treat a SimpleID on the RHS as an enum field. In fact, an enum field should never appear as a SimpleID; it should always be qualifed.

RB_ID=119106
bump version to 3.0.4
update util/finagle/ostrich dependency to 6.0.6
update CHANGELOG

RB_ID=120383
const definition of set type
bump version to 3.0.5-SNAPSHOT
fix wording in CHANGELOG

RB_ID=120750
Use correct case for enum fields on the RHS

Add genEnum methods to both Java and Scala generators. For enum fields, Java uses upper case, Scala uses title case. We didn't differentiate this before when it's on the RHS

RB_ID=121009
remote com.twitter.scalatest dependency, so that all dependencies are in Maven Central
refactoring tests
remote org.scalatest dependency too
remove dependencies: org.scalatest and com.twitter.scalatest
refactoring tests
upgrade to util/finagle/ostrich 6.1.0
Merge branch 'master' of https://github.com/chunyan/scrooge into csl376
bump version to Scrooge 3.0.5