Enable and fix addition warnings (-Wextra). Disable unknown pragma warning (avoids messy wrapping pragmas in compiler guards). Tidy up some of the waring suppression for 3rd part libraries by wrapping with a header.