Use executor service to process intents.

Preparation for some coming changes.
Stop player after it's been paused for some time.

According to the docs, this can save battery.
Better handling of audio focus listener.
Avoid logging expected exception.
More reliable state save and restore.