Use boost:hash when std::hash is not available

Try first std::hash, then std::tr1::hash and finally boost::hash.
Thanks to Itaru Kitayama.
See bcgsc/abyss#48