Version updates

This change brings all dependencies up to their
latest versions.
Java 8

This change updates the code to use Java 8 coding conventions.
Primarily this means the use of lambdas.
Simplify Controller Signatures

This change simplifies the return types in the
controller interfaces.