Generics

This pull request removes use of raw types wherever it is possible. There are some limitations when raw type is declared in interface.

Also the first commit increases the minimal version of JRE required. This was done to align version of source code declared in pom.xml and the version declared in MANIFEST.MF (and to get rid of eclipse warning).