Fix race in bootanimation

Yet another race. installBootAnim is resetting the bootanimation
before installing the custom one. The reset is done in a background
thread while the install is done in the UI thread. Unfortunately, in
many cases the UI thread will execute faster than the background one,
causing the custom bootanimation to be installed, then removed. Moving
the install process into the background thread makes both actions run
serially and always in the proper order. This will only work with API
level 11 and up based code as AsyncTask is using a single thread and
guarantees execution of queued tasks in order.

Change-Id: Ic1ffec4d4cb1caac1411ffb6b2dbe34811e05980
Merge remote-tracking branch 'upstream/jb-mr1' into jb-mr1