Add intersection type handling for Java 8 and up.

AVERT YER EYES

Closes #91.
How about using `t.getKind().name().equals("INTERSECTION")` instead?

From the [javadoc](http://docs.oracle.com/javase/8/docs/api/javax/lang/model/type/TypeMirror.html):
> To implement operations based on the class of an `TypeMirror` object, either use a visitor or use the result of the `getKind()` method. Using `instanceof` is _not_ necessarily a reliable idiom for determining the effective class of an object in this modeling hierarchy since an implementation may choose to have a single object implement multiple `TypeMirror` subinterfaces.