ReadSignedInt can be implemented more efficiently

saves 2/4 shifts
Improved assertions