Fix the back button being pressed while the drawer is open

Pressing the back button closes the drawer rather than causing
navigation underneath the drawer to occur
Move ArrayAdapter to a common base

Separate arraylist logic from the UI creation process.
Prepare for ExpandableArrayListAdapter
Move to a fragment based layout

Rearrange imports
Reformat the code.