Support updating the task dialog text once it's running.
Support updating the task dialog expanded area text once it's running.
Fix task dialog build for old windows versions.
Added missing inline modifiers to send_message implementations.
Fix compiler error with Boost.Filesystem v2.
Compile `task_dialog_builder` show method in test, even if not calling it.

Although we mostly don't want to call the show method, because we need the tests to remain automated, we should still be compiling it to make the test as useful as possible.  This change replaces comment out calls to `show()` with a conditional that will not, ordinarily, be true.  The condition also makes it easy to temporarily change the tests to show the dialogs.
Use threads safely in task dialog async update classes.

It is not safe to just detach the threads in our async update classes as they reference a function that is likely to use external state when executing.  This change using an RAII wrapper to join the threads before the last copy of the async update class goes out of scope.  Assuming the state used by the function outlives the async updater, this won't let the thread access invalid state.

http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2802.html
http://akrzemi1.wordpress.com/2012/11/14/not-using-stdthread/

We came accross this bug because the test suite main() was returning while the thread was still running.  This aborted the thread and leaked memory.
Allow task dialog commands to be invoked independent of a button.

The command must still be added by associating it with a button, but may be invoked directly on the `task_dialog` (as well as using the button).
Make attorney methods private.

The attorney classes weren't doing their job (to limit certain functionality to certain friends) because the methods invoking the functionality were public, completely defeating the point.  This commit fixes that.