Another Odict implementation, a dictionary that preserves the object insertion order [1]