Save and restore itemlist contents + position on orientation changes.

- Create a RetainFragment that backs a hash that can be used to get/put
  arbitrary objects, and use this in multiple places to save state across
  the activity life cycle.


framework/SqueezerItemListActivity.java:

- Maintain a set of pages that have been received from the server, distinct
  from the set of pages that have been ordered.  Use the RetainFragment to
  persist this across activity pauses.

- Rename reorderItems() to clearAndReorderItems() to make the code more
  documenting, clear the sets of received and ordered pages, and re-fetch
  page 0 when it's called.


framework/SqueezerBaseListActivity.java:

- Use the RetainFragment to persist and restore the state of the itemView,
  imageFetcher, adapter, and listview.


itemlists/Squeezer*Activity.java:
itemlists/dialogs/*.java:

- s/orderItems()/clearAndReOrderItems()/


util/ImageCache.java:

- Use the new util.RetainFragment, and delete the retain fragment inner
  class from this class.


util/RetainFragment.java:

- A Fragment designd to be retained across activity boundaries.  It can
  store and retrieve arbitrary objects under a given key.
Remove two unnecessary semi-colons.
Ignore out/ and *.patch.

out/ is created by gradle/Android Studio.

*.patch are generated from Android Studio's "Create patch" feature.