Fix handling of illegal ID3 identifier.

The ID3Header tries to read the three very first bytes of a file and decodes
them with the ASCII codec. If this file happens to not contain an ID3 tag, the
first three bytes might not be decodeable by the ASCII codec (If at least one
byte is 0xF0 or greater).

To work around this problem, the raw bytes should be checked against the byte
string b'ID3', thus skipping the decoding.
Add option to add padding during serialization.

When ID3.serialize() is invoked with the min_length option, zeroes are added to
the end of the tag until the tag is at least <min_length> bytes long.