Use FragmentActivity instead of Activity as base

Also, this requires the use of a Loader to visit a cache, since data
cannot be retained accross a configuration change.