Fixes minor bug with ClosureCleaner

The bugfix is here:
```	
-        getOutersOf(myOuter, (f.getType, myOuter) :: hierarchy)
 	 102	
+        // Note that if you use f.getType you might get an interface. No good
 	 103	
+        val outerType = myOuter.getClass
 	 104	
+        getOutersOf(myOuter, (outerType, myOuter) :: hierarchy)
```
The rest is refactoring.