Remove date packing and invert date dependency

Before, each year, month, and day field used packing to store its values in the
same tag but at different positions. We then instantiated a
`CompositeDateField` to combine the different values. This lead to code
duplication in the storage styles for these fields. It also inverted the data
dependency. It's more natural to think of year, month, and day as part of a
date then as of a date as composed of these.

Now, only `DateField` class stores data in the files tag. This makes sense: One
tag, one field that accesses it. To obtain access to the year, month, and day
parts, the DateField is equipped with factories that create `DateItemField`
instances associated to a `DateField`. These descriptor allow us to get and set
parts of a date field.
Add the ability to gather the result of ^Cveral queries into a smartplaylist
Display MusicBrainz URLs

Closes #574
Clarify debian/ubuntu pip installation.
Merge pull request #577 from johtso/show-musicbrainz-urls

Display MusicBrainz URLs
changelog/thanks for #577
add link to Slackware SlackBuild
changelog for #570
changelog (& tiny tweak) for #567
use travis_retry with apt-get commands

Avoid spurious failures on connectivity issues.
changelog for #579/#578
Merge pull request #580 from ian-kelling/master

Clarify debian/ubuntu pip installation.
Merge pull request #564 from geigerzaehler/mediafile-date

Remove date packing and invert date dependency
Move mediafile cast logic to storage style

StorageStyle.get should return a python builtin type.
This amends 5716cd10240a2bda57abfa8d3bc700b0d2a89643
Merge branch 'spl_multi_query' of https://github.com/brilnius/beets into brilnius-spl_multi_query
spl mutli-query (#575): remove option, changelog
use OrQuery for smartplaylist (#575)
skip completion test if script not found
tiny style cleanups in built-in commands
bash completion (#553): expand docs