Better Look Before You Leap logic for reorder_keys.

reorder_keys now checks the length of the iterable of keys passed in
against self._keys, making sure you don't change the number of members.
It also uses sets to make sure that the keys parameter contains exactly
the same keys as the _dict.
Shouldn't have forgotten this.
Merge branch 'master' of github.com:therealfakemoot/BetterOrderedDict