Replace use of dict for duplicate removal

The use of dict introduced in ec98f92 can cause issues when large sets
of points are introduced. The order of data in the dict is unreliable
(in cPython anyways), and starts to mix things up when thousands of
points are introduced. While the stored data is correct, it can
cause extra seeks/writes. Its also super confusing when debugging.

This patch is similar to the implementation of a8e30fa, but adheres to
documented expectations.

It is also faster than the dict, at least for large sets of points. For
small sets, the difference is unmeasurable.
Merge pull request #33 from tabletcorry/dict_ordering

Replace use of dict for duplicate removal
Revert "Replace use of dict for duplicate removal"

This reverts commit 48bcbbfc92546618d09843f38804769341eaaa61.

The changes introduced by 48bcbbf cause a "'str' object does not support
item assignment" exception; this patch restores the previous behavior
until a more permanent fix to the issue 48bcbbf attempts to address is
made.
Merge pull request #37 from ajablonski/master

Revert "Replace use of dict for duplicate removal"
Merge pull request #40 from graphite-project/0.9.x

Merge a few patches from master
Merge branch 'master' of git://github.com/graphite-project/whisper

* 'master' of git://github.com/graphite-project/whisper:
  Revert "Replace use of dict for duplicate removal"
  Replace use of dict for duplicate removal