Implement download of albums,artists,genres,years and musicfolders

To ensure safe download of multiple item we use the download manager,
so this is a gingerbread or better feature.

To ease the implementation of this, the model has been extended with
a new interface, FilterItem, which defines a tag to be passed to the
Squeezebox server. This means the item to download items for can just
be used as a tagged parameter for the songs request.
Since an item can have many songs, this request can take some time
to process, so this logic is moved to the service to avoid problems,
with the activity disapearing. Playlists and musicfolders are special
cases since they use the playlists tracks and musicfolder requests
respectively to get the subitems. Musicfolder are special also, in that
it can contain subfolders, and it is the only list which does not
contain songs.

The name and folder structure of the downloaded songs will match that
of the server. This is accomplished by ordering the server path in the
requests, and removing the configured media folder from the server path.
The mediafolder(s) are ordered when the app starts. If we can't find
the relative server path, we just use the file name from the server
path. All files are placed in Environment.DIRECTORY_MUSIC.

There seems to be a problem downloading files with certain characters in
the path or name ('%' and '?'). To workaround that the files are down-
loaded to a temporary filename, and renamed when the download is
complete. The download id is registered when the download is enqueded
in the download manager, and the filename is looked up when the
download complete event comes. We use a SQLite database to hold the
pending downloads.

Download of genre or musicfolder may result in a substantial number of
downloads. To handle this the user can cancel the downloads by clicking
the download notification.

Download notification clicks and download completed events are handled
by a broadcast receiver which is registered in the manifest.

Since we now have the FilterItem, this is taken advantage of in the
albums and artists requests.

Since the service can now handle load of full lists, this is utilized
in the genre and year spinners.
Upgrade to gradle plugin 0.9

Required by Android Studio 0.5