+ make benchmark tests copyable and avoid sharing state between threads
+ add polygon_clipper test
+ remove unused local vars
+ poss args by const ref
+ make operator=() non-throw
+ use std::swap()
+ better error reporting