Use java.lang.ClassValue in ClassInfo (when available)
Change ClassInfo.modifiedExpandos from being a HashSet (strong references) to a ManagedLinkedList (weak references)
Merge pull request #395 from candrews/ClassValue

Use java.lang.ClassValue in ClassInfo (when available)
Additional documentation for type inference
   * least upper bound
   * instanceof inference