Fix some iostream corruption

When constructing the AdapterFactory, the devices thread may start
running before the factory is fully-constructed.  This is normally not
an issue, but very rarely the DGI will segfault after the logger becomes
corrupted. In the specific crash this addressed, the constructor threw
an exception (which may or may not be relevant) in the main thread, and
in the devices thread the DGI crashed when printing Logger.Status.
Since Trace-level output was off, it's worth noting that this was the
first logger usage in the newly-created thread.

From the backtrace it appears that the devices thread was simply trying
to print, while the broker thread was attemping to flush the logger's
buffer. However, the broker thread seems to have been waiting on a lock,
and so not actually touching the buffer at the time. So it's unclear why
the crash occurred.

This commit does not necessarily resolve the underlying issue. We don't
know what is really wrong. But it will definitely no longer be able to
crash at the same point again, as the thread is now started on the last
line of the constructor.  At first I was concerned that starting the
thread in the constructor AT ALL might be unsafe, since the top-level
function is a member function (actually Boost.Thread has some cruft in
between, but that doesn't affect the problem).  But consider that every
member variable has already been initialized before the first line in
the constructor has run: it is therefore safe.

Finished reading?  Oh yeah, fixes #224 ((maybe))