Extract SerialVersionUIDAnnotation. Make SAM body synthetic.

Addressing review feedback.
Single Abstract Method support: java8 test

Inspired by test/files/run/t7398.scala and sammy_poly.
Added some notes to original tests.

Elaborating on that note: we don't yet desugar `f(a)` to `f.sam(a)`,
like we do for regular functions: `f(a)` becomes `f.apply(a)`.

It seems pleasingly symmetrical and is easy to implement,
but not sure it's a good idea...
Remove stray debug comment
Simplify logic regarding missing parameter types

When we're typing the result of eta-expansion and fail
because of missing parameter types, we try again.
Whether we're in that case doesn't change between arguments,
so hoist that out of the loop.

Eventually, we should get rid of the retry and just immediately
type check the un-eta-expanded method call -- if possible...