Add BeforeWriteError for plugins

The idea is that plugins may want to prevent beets from writing a file (for
example if an integrity check failed).
Unify exception handling of `item.write()` in UI

Don’t abort the program when there is something wrong with the filesystem.
Add _item_write method and remove duplicate code
Fix missing import
Handle exceptions in item.write and use plugin abort
Remove unused code
Add FileOperationError and handling in item.write()
Remove unused import
Merge pull request #603 from geigerzaehler/write-exception-handling

Exception handling for item writes