squash-me: use un-bounded serializer for non-arithmetic operations

Previously, CScript used CBigNum to serialize uint64_t in cases like:

  int64_t foo;
  CScript() << foo;

Internally, foo was cast to a CBigNum, and its vch would be forwarded to the
script.

We can't use CScriptNum the same way, since it is bounded unlike CBigNum.
Instead, serialize it directly.
squash-me: script: use the correct total value

This should be the maximum value that we can hold in 5 bytes.
squash-me: script: add tests for some discovered edge-cases