C++11

Reference #1401.

Change much stuff to use new library.
Hashes are not guaranteed to be unique, so this may be useless on some systems.