Run keepalive in a dedicated thread

Periodic tasks are not concurrent, they run one after the other in
a single greenthread so if a periodic tasks take a long time to run
(e.g syncing the power state of the devices) the conductor will miss the
keepalive and will be considered dead even tho it's not. This commit is
adding the keepalive to a dedicated greenthread to avoid such problem.

Partial-Bug: #1308680
Change-Id: Ib4159e55a42f268c75f362180e145e637735c16d
Merge "Run keepalive in a dedicated thread"