Bump version to 2.22 beta 1
Add more cuesheet unit testing and total_pcm_frames handling.

The total_pcm_frames parameter for the .from_pcm() classmethods
is never required.  But if it is given, it must be accurate
or the encoders will raise an exception.
Add .supports_cuesheet() and .delete_cuesheet() methods to AudioFile

This makes them consistent with the images and replay_gain methods.
Add .supports_metadata() classmethod to AudioFile.

Add several metadata indepdendence tests.  That is,
deleting metadata shouldn't delete cuesheets or ReplayGain.
Nor should deleting a cuesheet affect the rest of the metadata.
Add silence streams to format tests.
Convert dict() and set() calls to dict and set comprehensions.

That is, replace lots of dict([(k,v) for (k,v) in stuff]) calls
with {k: v for (k,v) in stuff} which is smaller and easier to follow.
Make output_text and output_list immutable types.

This makes them function more like strings and should make them
harder to break.  It's also easier to optimize their internals
knowing no one else can come along and modify them.
Add some additional FLAC metadata testing.
Convert calls to file() with calls to open().
Add testing for invalid Vorbis files at init-time.

This covers things like invalid magic numbers, framing bits, etc.
Have all objects subclass from "object".

Remove all the self.__dict__ hackery in the process
and use proper superclass calls.
Fix a few bugs that turned up in testing.