mark final classes, improve intersection type handling
fix issues with nested types, and nested obj/cls/iface of objects
a couple of tests for nested types in objects