TreeSelection.unselect_all, not manual equivalent
Simplify VIEWS, add action-to-VIEW mapping
Refactor library_get_parent
Remove cruft associated with / and .. in library

The selected items in the library now are all valid targets for updating.

Also, the only way to browse to parent directly is with the shortcut. (You
can browse to it via breadcrumbs, but that uses a separate mechanism because
you could browse to any of the levels).
Refactor library_browse
library_browse should store the height of the view

Fixes a change from 7a33ea8 (part of the port to pygobject).
Remove leftover from '..' and '/'

This was previously used to avoid saving those special rows as the selection.
library_populate_toplevel_data only takes view

Also hits library_get_toplevel_cache, a companion.

It is simpler to pass just the view, as the views can't overlap for
toplevel data.
Convert bulk of library into classes

The views each get their own class off of the main class 'LibraryView'.

Also, a class is added, 'LibrarySearch'.  This class handles feeding data to
the views.

This is an initial conversion into classes.  Cleanup of these classes will
follow.
Replace NOTAG class props with file-wide const
Add alt arg in LibrarySearch.get_list_items

MpdHelper changed at 28593ba, to have the default 'alt' be None.  We must
specify if we want something else, as '' in this case.  This allows untagged
items to function correctly.
Remove unused strip_type var in get_search_items

Small leftover from ffc6b65c that's not needed.
Cleanup LibrarySearch.get_search_items

This also caught a missed migration of library_return_search_items.

There is a functional change in how get_search_items works, in that it now
accumulates the playtime, num_songs, and results over multiple searches it
finds in LibrarySearch.get_searches.

I expect this is how it was meant to behave since it got changed back in
813140c6.  The other similar functions in LibrarySearch, get_count and
get_list_items both follow this model.  But I could be wrong.  If so, it
should operate on searches[-1].
Cleanup LibrarySearch.get_list_items

Includes marking unused items from LibrarySearch.get_list_items as private
and making the method more pythonic.
Simplify base LibraryView.get_data_level
Cleanup LibraryView._get_data_songs
Revamp Artwork/Library divide (and threading)

This is an Intermediate Commit.  More cleanup and tweaking to follow.

So far:
  1. Explicitly split off an ArtworkThread class for handling the thread acts
  2. It talks to consumers via a custom GTK+ signal ('art_ready')

The current signal consumer is the library view, but in subsequent commits the
breadcrumb and other artwork consumers can be made to respond appropriately.

Currently there is a bit more lag than desired for filling the library view.
There will likely always be a tradeoff of responsiveness for this, but it can
be faster.
Cleanup Library.get_path_child_filenames

Cleanup includes removing checks for the defunct special parent/root rows.
Improve PEP8 compliance

This includes:
* lines of <=79 chars
* proper spacing between classes
* wrapping long conditionals with parens
* wrapping long args cleanly
Add breadcrumb image setting to art_ready signal

This also fixes adding existing items to the PriorityQueue if they have a
better priority.