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>
Since bare 'except' clauses hide bugs, I'd like to see at least a log.exception() in here.

I think ideally we wouldn't be using an exception to signal a problem in set_relations, and then this clause would be for real unexpected errors. I think we'd still want to catch and not re-raise it though, so the thread would continue. But definitely log it.