ToolType is now an interface

We can implement vanilla tool types in a different class.