first attempt at making an interface
Made Deduplicate and co. use an Interface
many great changes

I have solidifed the Interface
and added Strings, Ints and Float64s helper functions.

I have also added tests and benchmarks.