Refactor for reorder

This is the best way I've found to change the order of results from a
Cursor in a ListView.  Wrap the Cursor in a CursorWrapper
(BirthdayCursor here), then create a function to build a cache (List of
BirthdayListRow elements).  Override CursorLoader.doInBackground() to
wrap the cursor before returning it. Finally, in the Adapter.getView()
implementation you can cast the cursor to get a cached element.