Introduce unified macros to identify compiler, OS, and architecture. They are all defined in util/Macros.h and prefixed with EIGEN_COMP_, EIGEN_OS_, and EIGEN_ARCH_ respectively.
Big 853: replace enable_if in Ref<> ctor by static assertions and add failtests for Ref<>
Bug 903: clean swap API regarding extra enable_if parameters, and add failtests for swap