address further orddict modification review feedback

Both Anthony Ramine and Richard Carlsson were kind enough to review commit
8fde5510, the second commit attempting to improve the performance of
orddict. This commit addresses their review comments as described below.

1. Richard questioned the fetch_keys/1 change in commit 8fde5510. Further
testing showed that it wasn't faster than the original orddict version
after all, so in this commit it's reverted to the original orddict code.

2. Anthony pointed out that is_key/2 still doesn't fail properly if
something other than a pair is present in the orddict. Richard suggested
using lists:keyfind/3 in the implementation and verifying that it returns a
pair. This commit contains the suggested change.

3. Richard suggested bringing back the improved from_list/1 function
implementation from commit 8315d024, but augmenting it with a post-pass to
verify all list elements are pairs. I had considered this earlier but
figured it would be too slow, but testing shows that's not the case. This
commit contains the suggested change.

Compared to the maint branch, this commit changes the is_key/2,
from_list/1, fetch/2, and find/2 orddict functions to improve their
performance. The table below shows the performance of these functions
compared to the original versions running on a Macbook Pro with a 2.7GHz
Intel Core i7 processor and 16GB of RAM running OS X 10.8.5. The two
numbers on each line are timings in microseconds for the original orddict
and the modified orddict respectively.

fetch length 1: 1.93 1.76
fetch length 10: 2.32 2.03
fetch length 100: 6.10 2.41
fetch length 1000: 30.03 4.68
find length 1: 0.21 0.17
find length 10: 0.90 0.24
find length 100: 7.62 0.60
find length 1000: 47.93 3.00
from_list length 1: 0.31 0.04
from_list length 10 ordered: 5.88 2.34
from_list length 10 reverse ordered: 2.74 2.68
from_list length 100 ordered: 268.00 16.92
from_list length 100 reverse ordered: 15.69 14.32
from_list length 1000 ordered: 25530.02 185.77
from_list length 1000 reverse ordered: 156.09 154.72
is_key length 1: 0.16 0.14
is_key length 10: 0.64 0.26
is_key length 100: 6.00 0.61
is_key length 1000: 67.56 2.70

In all cases, the modified orddict versions are faster than the originals,
sometimes by one or two orders of magnitude.

For more details on what these tests do, please see the commit message for
8315d024. Also, note that the same validation tests described in that
commit message were successfully applied to this orddict version as well.