GCC forbids "__thread" before "static".
GCC requires explicit using of "this".

Visual C++ does not support this feature, so we need a macro depending on compiler.
Add features support detection for GCC.
Use preprocessor control of using RTTI.

GCC does not support string literals in function template signature and "typeid" into "decltype".
Add build instructions for GCC.
Configure Travis for GCC
fix after rebase