Make sure ByteReader and ByteWriter classes (and their specializations) don't perform operations that have implementation-specific or undefined behavior.
Pitfalls:
* Left shift of signed integer has undefined behavior
* Right-shift of signed integer has platform-specific behavior is value is negative
* Cast from unsigned to signed has undefined behavior if value is negative
BUG=
webrtc:4824
Committed:
https://crrev.com/be9b7b6881e5b0e0b54e7d2fb79c5af5f68c015b
Cr-Commit-Position: refs/heads/master@{#9854}