DecisionTree: Make some inner classes a bit more immutable.
ZooniverseClient: Make Subject immutable by making internals private with no setters.

This makes the code rather verbose, but immutable classes are inherently
thread-safe. Even though we try not to use Subject across threads, it would be easy
to make that mistake, so this gives a little extra safety.
ZooniverseClientTest: Update the expected result.
gradle-wrapper.properties: Use HTTPS, which is the new default.
Use the latest gradle plugin version.
German translation: Add an (English) string to make the APK buildable.
Changes by Android Studio.
A change by Android Studio.
Use the Android 21 SDK and the Material theme.
Only use the Material theme on SDK 21 targets (older ones don't have it).

By creating values-v21/style.xml, as suggested here:
https://developer.android.com/training/material/compatibility.html
Use AppCompat-v7 and its Theme.AppCompat theme.

Instead of using Material for >=v21 and Holo for <21.
This should let us have the same theme on all devices.
See https://chris.banes.me/2014/10/17/appcompat-v21/

It (or the Material theme) also seems to make it easier to
specify simple modifications to give some identity.
Attempting to style the ActionBar.

But the icons are still white.
Use the new Toolbar instead of ActionBar.

This lets us specify the Light theme for the toolbar, so we can have the
dark overflow (three vertical dots) icon, without specifying a custom
icon for it.
Action icons: Regenerate "light" (dark on light) icons.
Using the Asset Studio again:
http://romannurik.github.io/AndroidAssetStudio/icons-actionbar.html#source.type=clipart&source.space.trim=0&source.space.pad=0&source.clipart=res%2Fclipart%2Ficons%2Faction_help.svg&name=ic_action_help&theme=light&color=33b5e5%2C60
Action icons: Regenerate the invert icon from the SVG

Again using:
http://romannurik.github.io/AndroidAssetStudio/icons-actionbar.html#source.type=image&source.space.trim=1&source.space.pad=0&name=ic_action_invert&theme=light&color=33b5e5%2C60
styles.xml: Enable transitions on API v21, which supports them.

* app/src/main/res/values/styles.xml: Move most styling into
  an AppTheme.Base style and derive AppTheme from it.
* app/src/main/res/values-v21/styles.xml: Derive AppTheme again
  here, but enable transitions.
  See http://antonioleiva.com/material-design-everywhere/
ListFragment: Replace GridView with RecyclerView.

With some nasty code in our RecyclerView.Adapter to handle the
Cursor, because there is no equivalent for CursorAdapter as with
ListView/GridView.
I suspect that all the Cursor.setPosition() calls are very bad for
performance.
ListFragment: Make the grid width/height match the parent.

It was not a problem, but it feels correct.
RecyclerView: imageView: Set android:background="?android:attr/selectableItemBackground"

This should apparently give use the "ripple" effect on click, but it
doesn't seem to work.
ListCursorAdapter (RecyclerView): Respond to cursor changes.

This code doesn't actually seem to work, but new items showed up
already anyway. Mysterious.