[common.type_utils] adds is_hashable struct

is_hashable<T>::value is true iff std::hash<T>(T t) works or gcc is too
old