Correctly encode negatives in int32

According to protobuf specification an `int32` type should be able to hold negatives (though not efficiently). It might be rare if someone will use `int32` for negative values but it should still work.