SelectTool minor code improvements (#2932)
* SelectionTool: code improvement: use strongly-typed enum
* SelectionTool minor code improvement: use unique_ptr
* SelectionTool minor code improvement: formating / warnings
* SelectionTool: generalize code