Move to Java 8

Require Java 8 for compilation and for execution.

A few code changes were required due to changes in how generics are
treated in Java 8.

srm-client and packages it depends on are still flagged as Java 7,
allowing us to release a Java 7 compatible SRM client.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Albert Rossi <arossi@fnal.gov>
Acked-by: Paul Millar <paul.millar@desy.de> (email)
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: https://rb.dcache.org/r/7166/