Replaced naive InputStream.read(byte[]...) calls with DataInputStream correlaries.

This should be more robust to bad data--the calls are still wrapped in the
StreamUtils class because there are EOFExceptions that I think we should handle.

I've also renamed the ShortstoByteTest class (now NumsToBytesTest) and added a
test for the Utils methods that convert between bytes and ints to augment the
existing boundary tests in UtilsTest.java.