[1/2] Base: On-The-Go mode

On-The-Go turns on the camera of your phone and streams it to an overlay,
which is drawn over everything.
this makes you feel like your display is transparent, as you see the content
behind it.

its really useful when you are using your phone while walking, thats why
we called it "On-The-Go"

allows to change transparency of the overlay via the notification.

have fun!

Change-Id: I3efccb5fac41a946f6cb4992e9181422980ee5e4
Base: On-The-Go: Allow to toggle between front and back camera

Video Preview:
https://www.youtube.com/watch?v=MnPGn0zwpEw

In case you want to pick that feature, feel free to edit the
commit message to get rid of that ugly video ;)

Change-Id: Ia6422bf5bbd531240e62ee57de316a8e6f94546c
Base: On-The-Go: Several fixes

handle camera in surfacetexture
check if notification manager is null before canceling
restart timeout when changing the camera mode
convert settings observer to a local variable
remove redundant try-catch clauses

Change-Id: If637e30f69706dc8b3f1397fafacb24c7bbb5083
Base: On-The-Go: Overlay status- and navigation bar as well

Change-Id: I067981028340cdd53fe112cae9b7a4ddcb7532a8
Base: On-The-Go: Change the way of changing the camera mode

changing it on the fly is too buggy like i have done it.
sometimes things fail and we are getting stuck ;P

on mode change, save the value, create a notification and stop the service.
the notification allows to restart the service.

Change-Id: Ie02f01a4ab2f856cd58fe5fde8c49220bf7efd4b
Base: On-The-Go: Allow to restart service on the fly

add a toggle to the options dialog to allow the user to restart the service
on the fly, instead of stopping it and create a notification.

it maybe be buggy, depending on how quick their camera can release and
recreate the instance, thats why i went the stop the service way by default

if the user chooses to recreate it on the fly, it resets the views,
triggers a handler with a delay of 1/2 second and sets up the views again

also increate timeout of the dialog, as the transparent dialog may be
harder to read for users and its annoying if the dialog disappears while
you search for the setting you want.

Change-Id: I1233854c10ee524925834c73ea20fba44c0f2a46