Start fixing how images are downloaded.

The current code in SqueezerIconUpdater.updateIcon is called from
every getView().  getView() may be called multiple times for each
ImageView, and every time it is the image is fetched again.  So
album artwork might be downloaded two or three times for the same
ImageView.

Fix this by introducing an ImageDownloader class.  This class
maintains an in-memory cache of images that have been downloaded,
which means that not only do we stop downloading the same image
multiple times for a single ImageView, we will re-use the image for
any ImageViews on screen that should be associated with the same
image, for an even greater win.

This class is modeled on the SDK example
XmlAdapters/src/com/example/android/xmladapters/ImageDownloader.html,
but modified so that one or more ImageViews are associated with URLs,
and to use LruCache instead of the home-grown approach in that file.

SqueezerSongView has been updated to use this new method, the other
views will be modified in future commits.

Use an animation when images are displayed -- this helps highlight
any times that images are being re-downloaded when they shouldn't
be, for further work.
Use the ImageDownloader class when browsing albums.

Use 'icon' instead of 'image' in SqueezerPluginItem to reflect
the results from the server.

Add additional comments in places.
Refactor filter/search and sort order handling.

Remove the Squeezer{Filter,Order}ableListActivity subclasses,
hosting fragments is a sufficiently understood idiom that they just
made the inheritence hierarchy deeper.

Add clarifying comments in a few places.
Use JavaDoc for the pageSize comment.
Add comments for future work.
Turn a comment in to a Javadoc comment.
Show a disclosure triangle on list items that have context menus.

Import the disclosure triangle from the Android SDK (15), as well
as drawables for the button's various states to match the Holo Dark
theme.

Create a subclass of ImageButton to display the triangle, necessary
to avoid unwanted UI effects when the list is long pressed.

Amend the item views that have context menus to display the button,
and show the context menu when the button is pressed.

Adjust some of the layout resources as necessary, and while I'm here,
adjust them to keep within the Android layout design guidelines.
Comment out the "Choose genres" randomplay functionality.

This doesn't actually do anything yet, so removing it from the UI
avoids user confusion.
Add clarifying comments to Util.java and SqueezerPlaylistView.java.
Merge branch 'master' into actionbar

Catches up with strings[about_title] changes.
Add a "download" feature to the "Now playing" activity.
Support downloading tracks via the music folder view.
Remove prepareActivity() from SqueezerBaseListActivity.

Subclasses now call super.onCreate(savedInstanceState) and then do any
work they would have done in prepareActivity().  This keeps the code
closer to the normal Android activity lifecycle.
Break the circular link between SqueezerItemAdapter and SqueezerItemView.

SqueezerItemView had a reference to the adapter that created it, which
was used in two specific subclasses to determine whether or not "move
down" entries in the context menu should appear.

Break this link, and explicitly pass the adapter in to the
setupContextMenu() method where it can be used if necessary.
Format a comment, clean up whitespace.
Call context menu actions through the adapter.

The previous code called straight through to to the view to handle
the context menu selection.  This code goes through the adapter's
doItemContext() method.

Call through to the super class to get correct default behaviour.
Removed add-to-playlist and play-next from the context-menu of the current playlist.

The standard options of an item in a list of SqueezerSongs includes the ability to add the song to the playlist.
This is probably not what one wants, when viewing the current playlist, since the item is already there. This was previously implemented by not calling through to super.setUpConextMenu.
Since most the the standard functionality is now desired, I removed the items, which don't make sense instead.
Delegate context menu creation to the adapters.

Have SqueezerItemAdapter and SqueezerSearchAdapter implement the
OnCreateContextMenuListener interface.
Rename SqueezerItemView.setupContextMenu() to onCreateContextMenu().

For consistency with the rest of the context menu creation API,
rename the SqueezerItemView.setupContextMenu() method to
onCreateContextMenu().

The additional parameters that were passed to setupContextMenu()
are placed in a SqueezerItemView.ContextMenuInfo object.
Fixed bug in song move dialog

This feature is probably not used very much, since we haven't received any bug reports, but now it is fixed anyway.