Renamed functional interfaces and their methods to match Java 8.  Why couldn't they use apply() everywhere like Scala does?
Made compatible with Java 8 to the degree practical for the subset of functionality that I care about.