Image class

This has been sitting around for so long, I finally polished this a bit and now feel like submitting a PR for it. I'll just copy the commit message of the first commit because that's where most of the important stuff happens:

--

This new class stores the image data in a tempfile.TemporaryFile so we
don't keep the data for all images that are used somewhere in memory
anymore.

It also deals with saving images onto disk when the corresponding tracks
are saved (this was previously done by the File class). This removes the
ability to use tagger script in the cover file name (cf. the first line
of File._make_image_filename).

---