Revert "First for linux."

This reverts commit a6d379ae045eb8b30556c289dc6f484888fb366f.
Windows lags with C++11 features (no constexpr apart from in VS2013 November CTP which I don't want people to have to depend on!) so I've had to refactor a tad. Also update UTest after I got that working on windows too.
Changed the test case s.t. it will record a 'double hit' if that occurs (which at present it does with our implementation unfortunately :'( )