[1/2] Base: Configurable rotation

Configurable rotation modes -
- 0 (portrait)
- 90 (landscape)
- 180 (upside down)
- 270 (landscape)

Also move the option to enable/disable auto rotate to display settings from accessibility settings if device supports it.

Settings: https://gerrit.omnirom.org/#/c/4527/

PS9
unify defaults

Change-Id: I311b14754702831197c007e4dfe42d8523b970c6
Swap volume buttons when the screen is rotated by 90 or 180 degrees

Change to default behaviour not configurable due that it is now
more natural

Change-Id: I323b647066e8c73fac60067141d1add7b2f9962d
Fix appwidgets not updating

Previously there was a bug where if an appwidget's update caused a
TransactionTooLargeException then the AppWidgetServiceImpl.Host's
callbacks were completely disabled, for all widgets.

The fix still allows a DeadObjectException or other RemoteException
to disable the host callbacks, as that would be caused by a bad host.

Fixes issue 28216 on the public tracker
https://code.google.com/p/android/issues/detail?id=28216

Change-Id: I5c5d5939d7211ed23cca69e6674de730b51b0f3e
Signed-off-by: Kevin Barry <kevin@teslacoilsw.com>