Unify and simplify CScript push methods

* Make CScript::operator<<(const std::vector<unsigned char>&) cover all push operations (including OP_0, OP_1..OP_16 and OP_1NEGATE), and make the push for numbers use that.
* Convert the uint256, uint160 and CPubKey into a single templated one using the vector push code.
* Get rid of the int64_t operator<<; better be explicit about what needs pushing, so change all number pushes to use CScriptNum (which, due to the generic vector push now also correctly uses OP_n).
* Get rid of some unused methods and constructors as a result.
As said in #4981, I'm not incredibly happy about this. It seems the kind of magic use of C++ that results in obscure hard-to-debug problems.

I'd like the serialization code (and consensus code in general) to move in the direction of being as human-readable and explicit as possible. 

So in this case I'd prefer having an explicit function that does this conversion to a serializable type.