- Document when read, seek, tell callbacks are used.
- Add an automated testsuite.
- Test (and fix, if necessary) support for unknown sizes.
- Test (and fix, if necessary) support for large files.
- Read past unknown elements rather than seeking.
- Try to handle unknown elements with unknown sizes.
- Formalize handling of default element values.
- Try to resynchronize stream when read_block fails so that failure to parse
  a single block can be treated as non-fatal.
- Make logging more useful to API users.
- Avoid reparsing Cues and ignore any SeekHead at end of file.
- Optionally build a Cue index as Clusters are parsed.
- Support seeking without Cues.
- Avoid building a list of Clusters as they are parsed and retain only the
  last one parsed.
- Add an asynchronous error code to struct nestegg and ensure that API calls
  continue to fail safely one a fatal error has been returned.
- Modify parser/data structures to provide a clean separation.  Perhaps the
  parser should return a generic tree of nodes that a second pass uses to
  initialize the main data structures.
- Use pool allocator for all allocations.