Added read_sint for read signed integer.
The reverse might be more obvious (read_int for signed, read_uint for
unsigned), but at least it exists now.
Also fixed so that add_int works for all negative numbers, and
optimized it rather significantly for bignums (it no longer creates a
string copy of the bignum value).
Also added a simple add_padding() function to add a few bytes of data
set to a specific value (basically memset)