runtime: Support building with GCC

- Only invoke the compiler with -Werror with Clang. GCC produces some
  warnings which aren't worth cleaning up

- Only invoke the compiler with -fcolor-diagnostics on Clang. GCC 4.8
  does not support it

- Don't use an anonymous struct inside unicodedatabase's
  NonAsciiHashBucket. Clang and GCC don't agree on how to initialize
  anonymous structs. It also doesn't appear to be standard C++11

- Fix some minor warnings that GCC produced