Minor fixes to be more C/C++-compliant.

- Changed empty parameter lists to `(void)`.  Forgot that C still requires
  this explicitly.
Make code more Windows-compatible.

Fixed some Windows-specific issues:
- Added a timer replacement based on `QueryPerformanceCounter`.
- `<math.h>` imports the overloaded functions so when `pow` is called with
  integral arguments the compiler will complain about ambiguity.  (This is
  supposed to be fixed in C++11 but I guess MSVC is behind on this part.)
- Appears that the discrepancy in the matrix elements is a bit higher when
  compiled with MSVC, so the tolerance is adjusted for that.
- MSVC has `tgamma` now (as of version 2013) but it's declared with
  `__declspec(dllimport)` (if CRT is linked as DLL).  Hid the declaration
  from MSVC so it doesn't conflict with their declaration.