Better duplicate string seeker

Uses recursion, wth mementos to prevent retraversing sets of suffixes
that we've already hit. Gonna replace some of urlsquisher1 and use this
in urlsquisher2 too.
Started productionizing urlsquisher2.

...but not doing it until the dynamic dictionary compression, lke
urlsquisher1 has, is integrated.
maybe fixed plexode JS in IE

'delete' is an invalid identifier, but it looks like only IE cares.
Also, "plex = plex || {}" errors out on IE but "plex = this.plex || {}"
is OK.
more DupeSeeker tests