Add SHBrowseForFolder().

Really, folder browse dialogs without an edit box should be outlawed. I mean,
all you have to do is to set that one flag. But sure, I get why you'd like to
be compatible to the first versions of Windows 95 that didn't ship with
Internet Explorer 4... (no, not really).

There's also no reason you wouldn't want the dialog to be resizable. Well,
believe it or not, specifying BIF_USENEWUI actually deadlocks the process if
COM happened to be initialized using the COINIT_MULTITHREADED flag. It's not
like we've even had to bother with initializing COM (despite what MSDN says),
and the Wine source code confirms that SHBrowseForFolder() does that itself
anyway.

So, OK. Can we retrieve that COINIT flag somehow?

Well, there's CoGetApartmentType() on Windows 7 and later, and luckily, you
can get the same functionality on older systems by mumbling some COM
incantation to query this deeply encapsulated piece of information *that
should have been public in the first place*. And to top it all off, MSDN
mentions the sli~ght potential of a race condition in all this querying, so
you better call CoGetApartmentType() if you can, which doesn't have that
problem.

Fuck yeah, OOP. And I'm trying way too hard, aren't I?

Also starting to re-#define the structures to default to the A version for
perfect transparency regardless of whether UNICODE is defined or not. Making
thcrap_configure compatible to this change is left as an exercise to its
future developers. Hint: It only takes one byte.