This commit gets a substantial performance improvement by replacing ADAMRecord with the classes defined in Read.scala.

These homegrown Read classes avoid implicit conversions, lazy vals, unused fields, and as much indirection as possible.

Limitation: Currently we do not support loading ADAM data. That will come later in a separate PR.

* Added a Read trait, and MappedRead and UnmappedRead case classes that implement it.
* Load Reads using hadoop-bam directly. ADAM loading for BAMs is inefficient: parses fields twice.
* Instead of String and Char for nucleotide bases, use Byte and Array[Byte]. Add Bases.scala: functions for manipulating sequences.
* String fields in Read objects (sample name, reference name) are interned.
* Drop support for '-loci mapped' commandline argument. Now must either analyze all loci ('-loci all') or a specific set of them ('-loci chr1:100-200,...')
* Use SequenceDictionary instances to get contigs, instead of a distributed reduction on the reads.
* Fix bug in scripts/guacamole-demeter that had it ignoring $SPARK_JAVA_OPTS
Merge pull request #79 from hammerlab/use_guacamole_read_instead_of_adamrecord_squashed1

Performance improvement by replacing ADAMRecord with the classes defined in Read.scala.
somatic variant caller based on subtracting normal variants