Refactor Platform.get_tool() impl stack to use Platform’s system type
Add support for multiple system types for each Tool subclass