Async and TaskDialog

Implemented .NET async/await for QueryAPI(Name). Also implemented
CancellationToken in those classes.

Moved most error-checking logic from CustomActions to StatusDialog.

Using TaskDialog instead of MessageBox or a custom Windows Form. Had to
include EnableThemeInScope to get the right version of comctl32.dll to
be selected for my C# DLL since manifest are ignored with DLLs.

StatusDialog now handles interacting with comctl32.dll and running the
async tasks of validation. This is still a work in progress since the
dialog appears after the async tasks (defeating the purpose of async)
and exceptions are being ignored instead of caught for some reason. I
will need to implement my own events for the dialog to make it
interactive and cancellable. For now this builds and probably works, but
is very ugly and is a bad UX.