Added test for comparison, fixed behaviour of __eq__ to correctly reflec...

...t object equality.
If someone wants to have loose equal checks he can always compare dict(BetterOrderedDict()). Orderless checking against an actual BetterOrderedDict however will lead to very inconsistent behavior. The actual reason for this change is a bug I discovered when a complex odict structure actually equaled another although the order had been changed in one of the subdicts.

assert not BetterOrderedDict([(1,2),(3,4)]) == BetterOrderedDict([(3,4),(1,2)])

Has to pass!

I'm not a friend of implicit type casting either, in the end, if I really want to make a comparison as if the BetterOrderedDict were a normal dict I can always explicitly cast it that way.
Everything else in python behaves that way:
assert not [1,2,3] == (1,2,3)
assert not [1,2,3] == {1,2,3}
So BetterOrderedDict should too.