Use java.lang.ClassValue in ClassInfo (when available)

This change impacts how ClassInfo works.

When on Java < 7, use the same ManagedConcurrentMap approach as before. On Java 7/+, use java.lang.ClassValue.

See http://groovy.329449.n5.nabble.com/Memory-leak-in-ClassInfo-when-using-MetaClasses-tp5719218.html