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 pull request #28 from kboyd/afb/emptyRanking

Added checking for empty inputs.  Renamed predicteds, actuals to scores, labels.