Allow invalid configuration files to be edited

Fixes #1123.
Edit invalid config with beet config --edit
echonest: extract logic into prepare_upload method

Also fixes a bug where both converting and truncating would leave a
temporary file.
echonest: truncating a file converts it to OGG

Previously ffmpeg would throw an error because the file extension is
'.ogg' but the codec is 'copy'.
echonest: test different methods to fetch songs
Merge pull request #1128 from geigerzaehler/edit-invalid-config

Allow invalid configuration files to be edited
echonest: mock convert and truncate commands
echonest: test conversion failure
zero: make tests more explicit
Changelog for #1123/#1128
Parenetheses-less tuples
fix #1135
remove str decoding as input sources are unicode
Merge pull request #1136 from Kraymer/lyrics-unicode

lyrics: fix #1135 UnicodeEncodeError
Changelog for #1135/#1136
Docs warning about requests dependency (#1136)
lyrics: Handle requests exceptions (#1136)