message: Add hardening flags to Makefile
  Also tweaked the flags slightly so that CXXFLAGS are a superset of
  CFLAGS, all optimization levels default to -O2, and .SUFFIXES works
  correctly.
diff: @@ -4,9 +4,9 @@ CC=clang
  CXX=clang++
  # -w suppresses all warnings (the part that's commented out helps me find memory leaks, it ruins performance though!)
  # If compiling with ASAN, invoke like this: $ LSAN_OPTIONS=suppressions=suppr.txt bin/fusion
  -CFLAGS=-O3 #-g3 -fsanitize=address
  -CXXFLAGS=-Wall -Wno-unknown-pragmas -std=c++17 -O2 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor #-g3 -fsanitize=address
  -LDFLAGS=-lpthread -lsqlite3 #-g3 -fsanitize=address
  +CFLAGS=-Wall -Wno-unknown-pragmas -O2 -fPIE -D_FORTIFY_SOURCE=1 -fstack-protector #-g3 -fsanitize=address
  +CXXFLAGS=$(CFLAGS) -std=c++17 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor
  +LDFLAGS=-lpthread -lsqlite3 -pie -Wl,-z,relro -Wl,-z,now #-g3 -fsanitize=address
  # specifies the name of our exectuable
  SERVER=bin/fusion
  @@ -17,9 +17,9 @@ PROTOCOL_VERSION?=104
  # Windows-specific
  WIN_CC=x86_64-w64-mingw32-gcc
  WIN_CXX=x86_64-w64-mingw32-g++
  -WIN_CFLAGS=-O3 #-g3 -fsanitize=address
  -WIN_CXXFLAGS=-D_WIN32_WINNT=0x0601 -Wall -Wno-unknown-pragmas -std=c++17 -O3 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor #-g3 -fsanitize=address
  -WIN_LDFLAGS=-static -lws2_32 -lwsock32 -lsqlite3 #-g3 -fsanitize=address
  +WIN_CFLAGS=-O2 -D_WIN32_WINNT=0x0601 -Wall -Wno-unknown-pragmas
  +WIN_CXXFLAGS=$(WIN_CFLAGS) -std=c++17 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor
  +WIN_LDFLAGS=-static -lws2_32 -lwsock32 -lsqlite3
  WIN_SERVER=bin/winfusion.exe
  # C code; currently exclusively from vendored libraries
  @@ -142,7 +142,7 @@ windows : CXXFLAGS=$(WIN_CXXFLAGS)
  windows : LDFLAGS=$(WIN_LDFLAGS)
  windows : SERVER=$(WIN_SERVER)
  -.SUFFIX: .o .c .cpp .h .hpp
  +.SUFFIXES: .o .c .cpp .h .hpp
  .c.o:
  $(CC) -c $(CFLAGS) -o $@ $<
  