Adding CountReads object and ReadCounter CLI option.
Adding hasReferenceRegion to ReferenceMapping
Adding a package for custom exceptions.

Including UnmappedException as the first (typed) custom exception.

This is so we can include/report better error messages from within ADAM
processes.
Updating RegionJoin, with two changes.

There are two changes here:

1. RegionJoin.partitionAndJoin now pre-filters all records on either
side of the join with a check that the records are mappable, and doesn't
try to join those that aren't.

2. RegionJoin attempts to catch the NPE that comes from having
non-mappable records sneak through, and throws an UnmappedException
instead.