FileOperationError: include underlying exception

A primitive form of Python 3's "exception chaining", which is what we really
want here. Someday...
FileOperationError: also include the file path

This makes the errors fully self-descriptive, which simplifies logging them as
errors (you just have to `log.error(exc)` to get a reasonable message). We
also now handle these at the top level in case someone forgets to add a
handler. But in this case, we also send the full traceback to the debug log.
don't wrap standard errors during Mutagen save()