import single files and one-track albums

An alternate proposal for what's being discussed in #640.
benchmarking for slow matches

Investigating #609. The culprit seems to be repeated reading of the config's
weight settings.
style fixes in match.py
avoid unnecessarily reloading weights (#609)

In my profiling runs, this was taking 80% of the matching time to recompute
exactly the same dict over and over. Worth optimizing.

`beet bench_match` went from 80 seconds to 17 seconds on my machine with this
change.
Enable coverage with tox -e py27
benchmark: customizable album ID
Merge branch 'master' of github.com:sampsyo/beets
Add test case for single file import
fix tests for cached weights loading
Merge branch 'single-files'

Conflicts:
	docs/changelog.rst
convert: catch OSErrors and display error message

This also adds close_fds (only available on Unixes) to the common subprocess
invocation utility.
use command_output utility in echonest

That's the last direct use of the subprocess calls.
avoid use of deprecated os.popen
whitespace fixes in util
tox: pass args through to nosetests

This way, you get parallel testing by passing --processes=N.

You can get even more parallelism using detox:

$ detox -- --processes=4
bash completion documentation fix for GNU Bash-4.2

In GNU Bash-4.2, I have to put quotes around the eval statement for the shell to correctly interpret the output of the beet completion command.
Merge pull request #651 from sahandKashani/patch-1

bash completion documentation fix for GNU Bash-4.2
Plugins can't extend MediaFile anymore

Backported from #607.
See https://github.com/sampsyo/beets/pull/607#issuecomment-38387100

This will be return in #644.
Add path argument to item.write()

Symmetrical to item.read(), this allows us to update the tags of files that are
not in the library. The motivation was this issue [1].

The commit also includes a nasty hack in the plugin code that prevents breaking
other plugins.

[1]: https://github.com/geigerzaehler/beets-check/issues/1
Add tests for item.write() custom path