Work towards eliminating the other/1 error type.

src/json.m:
    Include specific constructors in the error_desc/0 type
    to cover the following cases:

        - a JSON value beginning with an illegal character.
        - an illegal (i.e. non hex digit) character occurring in a Unicode
          escape.
        - a non-finite number being encountered.

src/json.json_lexer.m:
src/json.json_parser.m:
    Use the new types of error above rather than the other/1 error type.

tests/bad_hex_digits.exp:
    Conform to the above change.

tests/overflow.{json,exp}:
    Test the error message we generate for non-finite numbers.