This commit drops the KeyTraits in favor of a std::any-like solution. Basically, we type erase any key the user wants to employ, just exposing a virtual version of the destructor, a comparison operator and a clone primitive.