Use a separate class for dealing with images

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).
Use the same Image objects for all tracks of an album
Catch IOErrors and OSErrors when creating Images

They can happen if the disk is full or the user is not allowed to access
the folder where tempfile.TemporaryFile wants to create the file.
Fix a typo

Not sure how that happened.
Fix embedding only front images

by using the images is_front_image attribute
tis -> this
Use tempfile.mkstemp to get a closable tempfile

This makes sure we don't run out of file descriptors if many images get
loaded into Picard.
Remove a super(...).__del__ call

`object` does not actually have a __del__ method
Use md5 hashes to make sure every images is only saved once

make_and_add_image will use already existing images from Tagger.images
if the hash of the image is the same as that of an image in there.
Use a _delete method for deleting temporary image files

__del__ was not getting called reliably when the interpreter shut down.
Delete cover files after running TestCoverArt
Fix coverart drop indication.

Disable drop if there is no selected item, and if the scheme is not
supported.
Handle network errors better

1. Process network error instead of response
2. Error message on redirect loop
3. In both of the above call handler to avoid Loading Album message being stuck.

Received the following error when coverart was temp unavail:

D: 09:25:27 GET http://archive.org:80/download/mbid-8028cf3c-fcf5-4915-ae47-ca29b2875d64/index.json
    Traceback (most recent call last):
    File ".\picard\webservice.py", line 240, in _process_reply
    cached
    File ".\picard\log.py", line 81, in debug
    main_logger.message(LOG_DEBUG, message, *args)
    File ".\picard\log.py", line 58, in message
    message = message % args
TypeError: %d format: a number is required, not NoneType
Increase statusbar update frequency...

... to match 100ms used elsewhere.
Merge pull request #223 from Sophist-UK/sophist_increase_status_update_frequency

Increase statusbar update frequency...
Merge pull request #220 from Sophist-UK/sophist_fix_log_error_on_timeout

Handle network errors better
Fix indentation and hence logic.

else looks like it should be associated with if.

So unindenting to make it so.
Return translated sort as well as translated name
Revert "Fix indentation and hence logic."

This reverts commit fec4e107bb37bc7b9baab14ee9e5249d095a2239.
Return default if translate_artist_names unset