Add test for incorrectly sized values
Refactor almost duplicate size checking logic
Implement unpack() for parsing from a file-like object
Implement pack() function to match API with unpack()