Merge pull request #119 from davidchappelle/master

Amendment to cmake changes for out of source builds
Install version.h even if doing an out-of-source build.
Merge branch 'jpetso-master'
Support std::unordered_map/set even if using libstdc++ from GCC.

When passing the appropriate compiler flags, libstdc++ has
supported std::unordered_map and std::unordered_set for a
long time, even without the tr1 namespace. There's no reason to
limit support of non-tr1 containers to libc++ (clang) and MSVC.
Fixing undefined behavior introduced by the incorrect use of comma operator with the conditional operator. The middle expression in a conditional operator between the ? and : is implicitly parenthesized but the end expression is not. Since the comma operator as he lowest precendence( http://en.cppreference.com/w/cpp/language/operator_precedence) this means the conditional operator will be evaluated first and then the expression on the right hand side of the comma operator will be evaluated. This leads to undefined behavior because the last member of the union being updated will not be the member that will be used next which is strictly undefined in C++ although gcc and clang aloow this type punning as an extension but is clearly not portable behavior nor was this the intended behavior. instead of parenthesising the end expression I choose to use an if/else which is not subject to such easy to miss precdence issues. This Coliru live code demonstrates the bug with simple example: http://coliru.stacked-crooked.com/a/1041aaa8380feeaa the code also demonstrates the using the right warning flags gcc will generate a warning for this code.
Added travis-ci support.
Merge pull request #132 from redboltz/support_travis_ci

Added travis-ci support.
Merge pull request #130 from jpetso/master

Support std::unordered_map/set even if using libstdc++ from GCC.
Merge pull request #131 from shafik/master

Fixing undefined behavior introduced by the incorrect use of comma