Use proper calling conventions in D and eliminate the need for C++ wrapper functions for SMOKE function pointers. More C++ code can be deleted. Windows *may* require extern(Windows), so that should be checked later.