Added checking for empty input in Curve builder and constructors.

* Curve constructors now check to see if the list of ranked labels is
  empty or not before proceeding.  This prevents nonsensical output
  (NaNs and the like).
* Added analogous checks to Curve.Builder and reworked other checks for
  valid builder state.
* Wrote/Updated corresponding tests.
* Changed IllegalStateException to IllegalArgumentException because the
  exceptions really are about bad arguments not bad state.
* Updated Curve.Builder invalid state tests with better names and
  formatting.
Moved all annotations to their own line per Google and Android style.
Renamed predicteds, actuals -> scores, labels.

* Renamed 'predicteds' to 'scores'.  Renamed 'actuals' to 'labels'.
  These are much better names and they make things much clearer.  This
  is something I have wanted to do for some time.
* Reworked some builder state error message language after the change to
  new terminology.
* Updated copyright years.
Merge remote-tracking branch 'origin/afb/emptyRanking' into dev/afbarnard

* Bring in changes that check for empty inputs which are important for
  the main to work well.
Updated to work with changes added in previous commit.

* Renamed 'predicteds' to 'scores' and renamed 'actuals' to 'labels'.
Added check for empty join result.

* When joining scores and labels, an empty join result suggests the user
  made a mistake specifying the inputs or join parameters.  Unchecked it
  will lead to other errors or nonsensical output.
* Added corresponding test.
Improved checking and handling of columns.

* Added checks for column conflicts (where a column is specified more
  than once).
* Added smarter defaulting of columns.
* Updated help with better descriptions of column handling behavior.
* Added array utilities to support above features.
* Removed function obsoleted by new array utilities.
* Added tests for defaulting columns and column conflicts.
* Updated dependencies in makefile since main now depends on array
  utilities.
Added tests for column numbers out of bounds.

* Added check for lower bound to out-of-bounds exception.
* Reworked column number handling code for scores-labels input so that
  it is zero-based (like the code for separate scores and labels),
  terser, and more correct.
* Removed TODO about checking report names because it doesn't much
  matter.  Report names are checked later but it could be good to check
  them earlier so as to fail fast.
Renamed 'Arrays' to 'ArrayUtils' to avoid conflict with java.util.Arrays.
Improved API for primitive array conversion functions.

* Changed to varargs syntax.
* Shortened names and made more descriptive.
* Focused documentation.