Create a Constants.java file

If constants are present in the IDL, write a Constants.java file which contains all the definitions.
Fixed swift2thrift bug caused by the addition of unions

ThriftFieldMetadata.getType() was renamed to getThriftType(), and an
unrelated getType() function was added. Update the template to call
getThriftType.
Fix oneway async client calls
Fix extending from a service defined in the same .thrift file
Fix a bug in the last change

The name can be null, so I needed to check for this
Add fail() to failure cases in AsyncClientTest
Collect per-invocation and total byte count stats for each method
Expose protocols used on client via ThriftClientManager.getIn/OutputProtocol
Update dependencies

- facebook-oss-pom (includes guava r15)
- thrift 0.9.1
- airlift 0.83
Fixups for new dependencies

Last commit updating dependencies requires a test fix and required one more related dependency update to fix a build break.
minor pom tweaks
Update dependency versions for release
[maven-release-plugin] prepare release swift-root-0.10.0
[maven-release-plugin] prepare for next development iteration
Move to latest snapshot dependencies
[swift2thrift] write struct fields ordered by id
[swift2thrift] Support classes in different packages with a command-line flag

This is useful if you want to generate one thrift file from java classes
in different packges.

Usually it's better to generate one thrift file per package, but if one
thrift file is easier to deal with, generating swift files back from it
is not necessary, and the thrift file will only be used to generate code
in other languages where namespacing is not an issue, add an option to
have one thrift file.
Formatting and White Space
pmd fix
Update the swift code to use the split timeouts for receive and read.

Add a read timeout similar to the nifty code. There are now two
timeouts: the receive timeout which is the overall time that a client
is willing to wait for a response and the read timeout which is the
maximum time that the client will wait for the server to make
progress.

And a couple of fixes to ensure that null values for any of the
timeouts will not cause a NPE somewhere down the line.