* Fix 64-bit enums for MSVC
As Windows has 32 bit ints (x86 or x64), enums in the Microsoft C compiler are only 32 bits. The PPC machine description uses 64 bit enum values, which won't work for MSVC. Replace them with #defines
* Add `ffs` implementation for Microsoft C/C++
* Remove GCC function attributes for non-GCC compilers
* Add macro to provide MSVC definition of strncasecmp
* Workaround MSVC pre-processor deficiencies
The MSVC preprocessor doesn't appear to like having a #if/#endif within a macro invocation. To placate it, surround two instances of the macro invocation (with appropriately different arguments!) with #if/#else/#endif