*`StreamReader.Read` methods now return errors
The other edits in this commit are related to cleaning up lint errors
caused by the changes to StreamReader
* adding animdata loader
* utility methods, more tests, export record struct
- added methods for fps and frame duration calculation to the AnimationDataRecord
- exported AnimationDataRecord
- split the various structs into their own files
- added getter methods for retrieving records by name
- added tests for the new utility methods