added ToolType/ToolHelper classes; refactored

refactored Type classes to have common superclass ThingType; refactored
*Helper classes to have common interface IThingHelper; had to make
Helper classes mostly non-static, access through static INSTANCE
variable.