Fixing filtering... wow that's a lot of changes

So fixing filtering was a lot more complicated than I thought, but I'm
glad that I got it out of the way now.  The deal is that a filter isn't
a keyvaluepair it's more of a keyoperatorvalue set... (string operator
string) or (something == something).  So I created a filter object and
replaced all of the filter keyvaluepair<string, string> objects with
filter objects... tough part is that the idea of using hashtables just
got a little more tricky as they don't support 3 pieces of data per
record..