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
AdjList: Fix a bug involving invalidated pointers

When the vector of strings suffixes is resized, the pointers to those
strings stored in the SuffixArray sa are invalidated.

This bug is not an issue for clang or GCC, but was found on the
Fujitsu C Compiler by Itaru Kitayama, who contributed this fix.

Closes bcgsc/abyss#48.
Revert "include <deque> for std::deque."

This reverts commit a8a2f9e09b1bad2d184baa510149d657785b44b5.
Revert "Incorporate sugesstions from sjackman."

This reverts commit 0fa9daa9b3cb1d7b5caccbbb425babc81af2ff7c.
Merge branch 'master' of github.com:bcgsc/abyss into v1.3.7

Conflicts:
	AdjList/AdjList.cpp
	Common/Hash.h
revert back to the original