The specializations for 4-byte reading did not return correct
values. This has to do with the order of casting and shifting. Also
adding a test to expose the bug (and verify the other byte sizes).
Review URL: https://codereview.webrtc.org/1615653011
Cr-Commit-Position: refs/heads/master@{#11364}
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
Review URL: https://codereview.webrtc.org/1226993003
Cr-Commit-Position: refs/heads/master@{#9854}