Feature/hash id revision

Changes behavior of default constructor as mentioned in #62 and adds std::has support as requested in #64 .