Improving odict performance by removing linear lookup  in __setitem__ method

__setitem__ methods has linear behavior. Every new key in collection slows down __setitem__ method linearly. And if you have quite big collection python might spend more time in __setitem__ than actually in application.