codec: negative vs positive values.

In line with msgpack C implementation, treat signed as synonymous to negative
and unsigned as synonymous to positive integers.

Consequently, encode all negative integers (go intX < 0) as msgpack negative fixnum or signed,
and all positive integers (go intX >= 0, or uintX) as msgpack positive fixnum or unsigned.

Also, get binc implementation up to spec, with distinction between negative and positive integers
(not between signed and unsigned integers). Also, fix binc implementation so that negative integers
are encoded just like positive integers, but with a different vd.

Fixes #24 .