first half-attempt at a flexible attribute schema

This uses two tables, item_attributes and album_attributes, as key/value
tables for the respective entities. Plugins register fields, at which point
they are magically materialized as properties on Items (Albums are not done).
This currently supports adding and modifying these fields but not retrieving
them (which will need some sort of join).
An attempt at flexible attributes with plugin namespaces.
Mostly untested.
Started hacking `CollectionQuery` to search flexible attribute fields.
Fixed up a couple of query classes for flex attr support.
ironing out some kinks
Code for reading attributes from concatenated flex columns into dicts moved to an outside methods to make it usable for both BaseAlbum and Item objects.
Merge pull request #208 from steinitzu/flexattr

partial flexattrs
experiments with "un-registered" flexattrs
get and set flexattrs with hyphen keys

Here's another little experiment: to make flexattrs a little easier to use for
end users, you can now get and set them by using 'namespace-key' as the
argument to __getattr__ or __setattr__.

For example, try:
$ beet mod foo-bar=baz
$ beet ls -f '${foo-bar}'
baz
baz
baz
...
reduce redundancy in item queries

Now the SELECT query for items only appears in Library.items(). All other
functions that retrieve items go through this method. This should make it
easier to change the way flexattrs are picked up.
merge with master

We should work off the latest changes because of the recent changes to the
Query class hierarchy.
beets is now in the official Arch package repo
Beets is a music library manager, not a TARDIS
Merge pull request #352 from mineo/patch-3

Beets is a music library manager, not a TARDIS
pathformat.rst: Add back "track"

This got lost in e0bb3b5cd0fe3f3f3ed158dc3dd30f6e0dbdda6b but is really essential enough to appear in that list.
Merge pull request #353 from mineo/patch-4

pathformat.rst: Add back "track"
fix regex (and other) queries in path field
guides/tagger: Make emailing Adrian less imperative
ref/cli.rst: Add a missing 'k'
ref/cli.rst: Remove a 'd'