Booking more progress on SI-6666

 - Avoids unneeded outer pointers for classes nested indirectly in self/super calls
 - Expands implementation restriction to prevent verify errors in early initializers

Closes SI-6259 and SI-6506; a bit more work is needed on SI-6666/SI-6957.

Review by @paulp. I'll warn you up front that there is some less than beautiful code in `ExplicitOuter` to communicate these errors as implementation restrictions, rather than crashes.