Have BitstreamReader.parse() also use string buffering.

As with .read_bytes(), this avoids pre-allocating giant strings
if the number of bytes to read is huge (and may fail anyway).

Also adjust the .parse() and .build() methods to avoid
"double wrapping" the low-level read and write calls in try blocks.
Add --cue switch to trackverify.

This allows one to verify a disc image against AccurateRip's database
using an external cuesheet instead of only an internal one.
Adjust scripts for PEP8 compliance.
Convert Image metadata types to named enumeration.