Fix "C++11 requires a space between literal and identifier" error with c++11
Remove extra semicolons
Add optional c++11 support

Yields 16% performance gain from unordered_map