Part 1: Resource Delegate generators

Can't really cut this one into sub-parts, sorry.
All 3 implementers (action, sub-resource and delegate) have different definition that inherits MethodDefinition. The abstract generator only need to deal with methods from MethodDefinition and don't know what implementations need. The override is more like sugar for the implementations so they don't have to cast re result of getMethodDefinition() to access more specific fields.