backward compatibility for revised orddict funs

Commit 8315d024 modified orddict to improve the performance of some of its
functions, but as pointed out by Anthony Ramine the modified versions there
aren't fully backwards compatible especially with respect to exceptions
thrown when incorrect arguments are passed. This commit fixes those issues.

The test program here verifies that the modified orddict behaves the same
as the original when incorrect arguments are passed:

https://gist.github.com/vinoski/a4da2dcea7b8f0463f66

In this commit the from_list/1 and store/3 functions are reverted to their
original versions, so now only the is_key/2, fetch/2, find/2, and
fetch_keys/1 are modified.

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: 2.09 1.98
fetch length 10: 2.60 2.15
fetch length 100: 6.82 2.72
fetch length 1000: 32.60 4.67
find length 1: 0.19 0.16
find length 10: 0.51 0.21
find length 100: 4.03 0.71
find length 1000: 25.02 2.18
is_key length 1: 0.14 0.11
is_key length 10: 0.57 0.22
is_key length 100: 5.80 0.72
is_key length 1000: 51.46 3.71

In all cases, the modified orddict versions are faster than the originals,
in some cases by an order 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.