Add option to save ID3 tag to file.
Fix handling of frames with only a single body byte.

If a frame has only a single body byte, the following line will have an
unexpected result:

    body_bytes = br.read(header.body_size)

Because `header.body_size` is 1, `br.read` will return a single byte instead of
an array. This leads to a problem in this line:

    ID3FrameImplementation.from_byte_array(header, body_bytes)

The frame implementation gets a single byte instead of an array and may crash.
The fix is to change the behaviour of the `ByteReader.read` method such that:

 + br.read() will return a single byte
 + br.read(1) will return a byte array with a single element

All other cases are handled as before.