Fix inconsistent back button behavior

By default, a press of the back button will only take effect when the
button is successfully released (the user releases the button while
still focused on it), not when the button is still triggered and pressed
down. To avoid this inconsistent behavior, execute the custom back
logic in the onBackPressed callback instead of onKeyDown.

Change-Id: Id516bc523b625a7ca42ea3ff580892cdf28f770f
ClassZeroActivity: Resolve some possible NPEs, and refactor common code

Match up to the final version merged upstream

Change-Id: I215188f5ea508b3c0b69189c1bf6ccc7601eed7b
Merge remote-tracking branch 'upstream/cm-11.0' into cm-11.0