[Improvement] --pretend option for the convert plugin

Partially resolves #877 showing:
  - Directory creation
  - Copies
  - Deletes
  - Moves
  - Encodings

Information about tagging and plugins on _after_convert_ is not
currently shown. That requires changing the plugins to support the
pretend option, so a lot of work may be needed and it doesn't seem to be
helpful enough for me.
[PEP8] I didn't had a pep8 checker on vim :c
Pull request for Spotify plugin development, see: https://groups.google.com/forum/#!topic/beets-users/2xsOZC-NMNk
convert: Add --format option

This option allows the user to specify the format on the command line
instead of editing the configuration.

The commit also includes some refactoring. In particular adding
arguments to functions to avoid dependence on global state.

Doc and Changelog in next commit
Documentation and changelog for b2740968
convert: Simplify format configuration.

We don't have to specify the extension. By default it is the same as
the format name.
Merge branch 'master' of https://github.com/sampsyo/beets

Conflicts:
	beetsplug/convert.py

PS: I O U the logging changes, it's quite late :c
Add asciify_paths configuration option
docs: Add note for 'replace' config and unicode
Merge pull request #894 from geigerzaehler/asciify

add asciify_paths configuration option
Docs tweaks
Merge pull request #891 from Dietr1ch/master

[Improvement] --pretend option for the convert plugin
Clean up `convert --pretend` (#891)

There were a number of problems with the changes to the util melange:
- It used print rather than logging, and its string formatting was probably
  not Unicode-ready.
- The shell-command-like print lines were not quite compatible, which makes
  their general usefulness questionable.
- Used an unsafe/leaky global variable for mkdirall.
- Used deprecated sets.Set.
Seemed better just to add this to the plugin where we need it so it's easier
to see where this goes.

It also seems unnecessary to me to print `mkdir -p` commands. They just
clutter up the output for me when I really just want to see the transcoding
commands.
Docs/changelog for #891
Fix music-crawl error messages (thanks, derwin)

Due to the new exception nesting stuff, we were catching and emitting
exceptions where none was necessary: specifically, when the file was non-music
(which is expected, especially when there are images).
echonest: Log on retries (for mersault_)
Correct the textual description of a date query

The the date query syntax `2008-12..2009-10-11` covers the interval [2008-12-01T00:00:00, 2009-10-12T00:00:00).
Add zsh completion script by @vapniks (#862)
MediaFile: make id3v23 a constructor parameter

For #899, we need to change MediaFile's behavior (pre-write) based on whether
we're doing ID3v2.3 or not. So we need a field on the object, not a parameter
to `save()`.
Add failing test for #899