factor out ARITH_COMP and ARITH_OP both in number.c and vm.c and some misc fixes
numbers which have the same value is equal
make reader respond to bigint, rational, bigfloat