Add base implementation of attachments

This is a proposal on how to implement attachments. For a written explanation see [the wiki]().

The goal is to cover #111, #559 and the [use cases](https://github.com/sampsyo/beets/wiki/Attachments) on the wiki.

The PR also includes a *coverart* plugin. It implements the use case for cover art on top of the attachment framework and serves as a guide on how to use the framework.

Although the basic interfaces are all there, there is still a lot of work to do. Incomplete implementations should all be marked by TODO or FIXME tags. In addition we have to do the following.

- [ ] Write tests. 100% coverage and integration tests for the user interface would be awesome.
- [ ] Extend the `list` command to show attachments.
- [ ] Dispatch attachment commands from *SubcommandOptionParser*. This includes adapting the `format_help()` method to the *ArgumentParser* interface.