Add 'maxwidth' option to embedart and fetchart plugins.

artresizer.py instances an ArtResizer object that uses internally the PIL; ImageMagick
or a web proxy service to perform the resizing operations.
Because embedart works on input images located on filesystem it requires PIL or ImageMagick, whereas
fetchart is able to do the job with the fallback webproxy resizer.
fetchart: fix urlopen call
fix few errors revealed by test_art.py
changelog and light style fixes for #64
misc. minor fixes for artresizer (#64)

- Safer proxy resize. The URL parameters are now properly encoded. And a
  spurious additional request has been removed.
- Removed manual search of $PATH. Invoking "convert" without a path does this
  automatically.
- More pyflakes-friendly test import of PIL.
- Do not delete the NamedTemporaryFile -- doing so creates a race condition
  where the file might be created between the filename generation and the tool
  invocation.
artresizer (#64): helper functions, not classes

The previous method was to change self.__class__ dynamically to make __init__
instantiate different classes. This new way, which uses bare functions instead
of separate functor-like classes, instead just forwards the resize() call to
a module-global implementation based on self.method.

Additionally, the semantics of ArtResizer have changed. Clients now *always*
call resize() and proxy_url(), regardless of method. The method makes *one* of
these a no-op. This way, clients need not manually inspect which method is
being used.
fetchart fixes for image resizing (#64)

Fixed a number of issues with the changes to fetchart:
- Remove redundant fetches. This was making the Amazon source download every
  image twice even when art resizing was not enabled!
- Restore local_only switch in plugin hook, which got lost in the shuffle at
  some point.
- Don't replace the original image file in-place; use a temporary file instead.
  This would clobber the original source image on the filesystem with the
  downscaled version!
fix art tests for new URL interface (#64)

The various source helper functions now return URLs instead of calling
_fetch_image themselves.
fetchart: fix command & use maxwidth (#64)

An earlier commit broke the call to art_for_album here (too few arguments).
I've also now propagated the maxwidth setting for the command to match the
import hook.
lazily initialize ArtResizer singleton (#64)

Searching for `convert` or PIL has non-negligible performance overhead, so it's
preferable to only do it when really necessary. This way, the search is only
performed when ArtResizer.shared is accessed for the first time.
don't use subprocess.check_output

This function was added in Python 2.7 and we're currently targetting 2.6 as a
minimum version. Replaced with a function in util.
artresizer: fix argument lists to helper functions

Also added some useful debug logs.
add extension for proxied images

`urllib.urlretrieve` was using the correct extension in most cases -- I think
when the URL ended with .jpg -- but not in every case. This was leading to files
named just "cover" and not "cover.jpg" or something else sensible. In
particular, proxied URLs don't have .jpg extensions. This generates the filename
manually so the source image always has an extension.
documentation for convert.exe problem (#64)

We currently just document the fact that convert.exe can interfere with finding
ImageMagick's convert binary. We can solve this with a config option easily once
confit is merged.

This also changes the line endings for fetchart.rst back to Unix.
merge with master