Fix or silence some compiler warning

I fixed or silenced a few compiler warnings I get with G++ 4.9.2:

 - Multi-character constants
 - Verify return values of functions that mandate it
 - Macro re-definitions
 - Use `static_assert` for compile-time assertions