IR: Move NumOperands from User to Value, NFC
Store User::NumOperands (and MDNode::NumOperands) in Value.
On 64-bit host architectures, this reduces sizeof(User) and all
subclasses by 8, and has no effect on sizeof(Value) (or, incidentally,
On 32-bit host architectures, this increases sizeof(Value) by 4.
However, it has no effect on sizeof(User) and sizeof(MDNode), so the
only concrete subclasses of Value that actually see the increase are
BasicBlock, Argument, InlineAsm, and MDString. Moreover, I'll
be shocked and confused if this causes a tangible memory regression.
This has no functionality change (other than memory footprint).