Add intersection type handling for Java 8 and up.

AVERT YER EYES

Closes #91.
s/AssertionError/RuntimeException/ as this certainly isn't an impossible exception.