change: Use error object instead of sentinel -1 (#1340)
change: Use error object instead of sentinel -1 (#1340)

change 1.3.0

As proposed in
https://github.com/exercism/problem-specifications/issues/1313
https://github.com/exercism/problem-specifications/issues/905#issuecomment-330184896

In contrast to the proposal in
https://github.com/exercism/problem-specifications/issues/336#issuecomment-280231149

Although -1 is a sentinel value, the sentinel value had been overloaded
in this JSON file to mean two separate conditions:

* "Can't make target" (ostensibly, we might be able to make the target
  with a different set of coins)
* "Target is negative" (no matter what coins we provide, this target is
  always invalid)

To make clear that these two conditions are different, we use an error
object describing each.

This error object was defined in
https://github.com/exercism/problem-specifications/issues/401

Note that this commit is not a decree that all languages must represent
these conditions as errors; languages should continue to represent the
conditions in the usual way for that language. It is simply a
declaration that these two conditions bear enough consideration that
we'll represent them with a different type and also clearly
differentiate between the two.

Closes https://github.com/exercism/problem-specifications/issues/1313
Checks the related box in https://github.com/exercism/problem-specifications/issues/1311
ErikSchierboom/x-common,exercism/x-common,rpottsoh/x-common,jmluy/x-common,rpottsoh/x-common,petertseng/x-common,petertseng/x-common,jmluy/x-common,jmluy/x-common,ErikSchierboom/x-common,exercism/x-common