Speed up Interface#IsInterface check by turning cls.implementedInterfaces into a map with the interfaces the class implements as keys (and values)

Theoretically, the lookup should've been a linear search through the class's list of implemented interfaces. Because of a bug in applyInterfaceBindings, it was a recursive search through all of the class's parents' lists, which contained duplicate entries for their implemented interfaces: one for each child class ...