Handle special values of atom size.

The distinction between size and extended size may be improved in the future to be more intuitive.
Add constants for data sizes.
Style cleanups.
Clean up handling of number of bytes read so far.
Add the basics of the "moov" atom type.

This doesn't parse the moov atom yet (beyond the "type" field), but contains the basic scaffolding for it.