add behavior and publish overload
add reduce, sum and average

because sum and average fail to compile, due to observable being a
partial class at that point, a hack was added for sum and average.
They are spelled:
  o.reduce_to(rxo::sum)
  o.reduce_to(rxo::average)
added switch_on_next and replaced reduce_to

observable now has sum() and average()
remove RelWithDebInfo
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