Fix type_traits and atomic to compile in c++98 mode on gcc.

Replaces some c++11 constructs with equivalent c++98 ones. Removes
standard library features that depend on C++11.

Change-Id: Ib46e3e856fdddca00893930d90e8f1c1877c082d
Merge pull request #140 from awong-dev/c98-compat

Fix type_traits and atomic to compile in c++98 mode on gcc.