Abstract charm relations into a separate thread

juju doesn't provide a way to pre-emptively set services that will be
related whether the related charm exists or not. This creates a thread
that just goes through a list of charms to be related and will run
until those relations complete.

Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>