Parquet and indexed Parquet RDD implementations, and indices.

* Scala reimplementation of the Parquet footer parsing.

* Implementations of two Parquet-based RDDs

AvroParquetRDD.scala contains two RDD implementations around Parquet files.  The first,
AvroParquetRDD, reads a single Parquet file (containing an Avro schema) and partitions the RDD
based on the row groups of the file.

The second, AvroIndexedParquetRDD, is an implementation that reads an index across a set of
parquet files, determines (according to the predicate contained in CombinedFilter) which row groups
in which files are relevant to the query, and produces an RDD whose partitions are in 1-1 correspondence
with the matching row groups from the index.

The parquet_reimpl/index package contains the code necessary for reading and writing indices.

* Adding two CLI commands, including an index generation command.

Adding two new CLI commands:
1. IndexFlatGenotype, which reads in a flat genotype Parquet file, and produces the index for that file.
2. the PrintParquet, which reads a Parquet file and prints out a limited number of entries form the file.

(at the moment, the latter only supports ADAMFlatGenotype)

* Implemented ID/Range indices on Parquet files.
Merge pull request #267 from genomebridge/parquet-rebase

Parquet and indexed Parquet RDD implementations, and indices.
Fixing sources jar
Making the CredentialsProperties file optional
Merge pull request #313 from genomebridge/credentialsPropertiesOption

Making the CredentialsProperties file optional
Merge pull request #312 from genomebridge/sources-jar

Fixing sources jar
Added table of (wall-clock) stage durations when the print_metrics option is used

The ADAMMetricsListener now records the wall-clock duration of each Spark stage. Previously only the total time taken for all of the tasks in the stage was recorded, but this is different from the wall-clock time on a multiple node cluster.

Also changed the text of the print_metrics option to clarify that metrics are printed to the log (as opposed to stdout)
Merge pull request #315 from nfergu/stage-metrics

Added table of (wall-clock) stage durations when print_metrics is used
Updates to indel realigner to improve performance and accuracy.
Adding scripts for publishing scaladoc.
Merge pull request #319 from fnothaft/publish-scaladoc

Adding scripts for publishing scaladoc.
Remove extraneous implicit methods
Merge pull request #314 from fnothaft/indel-realigner-rebase

Updates to indel realigner to improve performance and accuracy.
Merge pull request #320 from genomebridge/remove-implicit-methods

Remove extraneous implicit methods in ReferenceMappingContext
Adding code for lifting over between sequences and the reference genome.
Merge pull request #306 from fnothaft/liftover

Adding code for lifting over between sequences and the reference genome.
[ADAM-322] Adding ADAMFeatureField for projections over ADAMFeature.

For some reason, we'd neglected to include an ADAMFeatureField class in the adam.projections
package!  This commit fixes that.
[ADAM-307] Fixing Features2ADAM so that it can be run from the CLI.

Features2ADAM fails because it doesn't include an 'index' field in its
second command-line argument, and therefore Args4j can't parse the Features2ADAMArgs
object off a command line.

This commit adds the missing 'index' argument to the Features2ADAMArgs class.

There is a test for this additional feature -- however, that test is marked as IGNORE
because we can't get it to work either locally or on Jenkins.  This should be addressed,
and I'll open up a ticket for it.  In the meantime, however, we've verified that manually
that this patch works as advertised.

Also modified PrintADAM to use the scala.Console.out rather than System.out.
This seems to allow us to (in tests) redirect the output stream using the
Console.withOut command.
Merge pull request #308 from genomebridge/features2adam-bug

Fixing the 'index 0' bug in features2adam
[maven-release-plugin] prepare release adam-parent-0.12.1