Cleanup code and make call data processing asynchronous.

Backported from CM10.1 by Daveee10
Fix threads running after entering call log, possibly affecting battery life.

When having entered the call log or the call stats activities once, the
contact lookup thread (which wakes once per second) continued to run
even after leaving the activity.
The root cause for that was that the ViewTreeObserver obtained at
registerOnPreDrawListener() time was no longer valid when
unregisterOnPreDrawListener() was called. Fix that by storing a
reference to the observed view instead of the observer and fetching the
current observer when needed.

Backported from CM10.1 by Daveee10
Backport "Allow quick pre-selection of filter range." from CM10.1