TODOs: - Documentation. - Error handling for invalid type. - Simple viewer application using pygame. - Outlines. - Named Objects. (pages) - Support writing/creating PDFs. - Any special treatments for linearized PDFs?