script: add CScriptNum class

This class holds an int64_t and replaces the use of CBigInt for script
integrals.
script: switch to CScriptNum usage for scripts
script: switch outside users to CScriptNum
script: remove bignum dependency
script: Remove obsolete CastToScriptNum

This was needed with bignum because CBignum allowed for values greater than
the valid script number range.

CScriptNum constructors and operators throw out-of-range exceptions, so it's
safe to use them without a helper.
script: Add test for CScriptNum

Because this class replaces some usages of CBigNum, tests have been added to
verify that they function the same way. The only difference in their usage is
the handling of out-of-range numbers.

While operands are constrained to [-0x7FFFFFFF,0x7FFFFFFF], the results may
overflow, and are constrained to [-0xFFFFFFFF,0xFFFFFFFF].

CBigNum was unaware of this constraint, so it allowed for unbounded results,
which were then checked before use. CScriptNum will throw an exception on any
operation that overflows its bounds. There is no need to check its validity
before use.

Unfortunately, that means that these unbounded operations can't be compared
directly between the old and new implementations. To illustrate the
differences, the tests operate on unbounded input, and when an exception is
caught, the results are not compared with those of CBigInt since they won't
match.