Large "refactor" to accomodate removing Services.
Why? Because Android's service requirement gets messed up pretty quickly
once you have two or three activities that are all accessing in the
service and closing.  Specially with a lot of bugs with TabActivities not
being able to start and stop services, or even bind services consistently.
I've moved everything away from Service to AsyncTask for now. Left in most
of the overall structure as it's still useful once we move back to
Service.