Add additional GroovyClassLoader tests

These tests specifically test for compliance with parts of JLS Section 5.
GROOVY-3680: Cannot use Groovy class with @Bindable or @Vetoable in Java code: cannot find symbol for addPropertyChangeListener
Added documentation for list/map constructors
Documentation: Described principles of matching arguments to parameters
Fix failing test because the script ID may be different
GROOVY-3680: Cannot use Groovy class with @Bindable or @Vetoable in Java code: cannot find symbol for addPropertyChangeListener (add test)
GROOVY-3680: Cannot use Groovy class with @Bindable or @Vetoable in Java code: cannot find symbol for addPropertyChangeListener (improve test)
Use lists instead of a table for readability
Add missing JS resource
GROOVY-6875: @Builder InitializerStrategy and DefaultStrategy should avoid marking created methods as synthetic to allow Java integration
GROOVY-6614: Groovy compiler throws internal error with @CompileStatic and getPropertyChangeListeners()
Precisions for method selection
GROOVY-6614: Groovy compiler throws internal error with @CompileStatic and getPropertyChangeListeners() (prefactor before @Vetoable changes)
GROOVY-6614: Groovy compiler throws internal error with @CompileStatic and getPropertyChangeListeners() (add varX types)
Add information about destructuring (multiple assignment + getAt method)
Additional notes on switches (regex and closure cases), and the for(:) notation
additional test (@AutoExternalize with @CompileStatic)
GROOVY-6873: Fix variable scope not popped when a variable is found to be a parameter
Use java.lang.ClassValue in ClassInfo (when available)
Change ClassInfo.modifiedExpandos from being a HashSet (strong references) to a ManagedLinkedList (weak references)