Merge pull request #2158 from JamesIry/master_7006

SI-7006 Eliminate NOPs and unreachable code
SI-7159 Remove unreachable cases in GenICode#adapt

This commit removes some unreachable code in GenICode#adapt. It's
hard to prove that these cases are unreachable, but they do appear to be
and I  wasn't able to find a way to get to them. Code archaeology
was un-fruitful; they're very old. Which may mean they are legacies
from a time when Null and Nothing types weren't fully baked.
SI-7159 Remove erroneous INT <:< LONG in TypeKinds

TypeKinds said INT <:< LONG. But that's not true on the JVM, you need
a coercion to move up. And GenICode#adapt was checking for just that
special case.

This commit removes the INT <:< LONG rule and then removes the special
case from GenICode#adapt.

A test is included that reproduces the problem reported in SI-107, the
bug that created the need for the special case in GenICode#adapt.