GROOVY-5366 unable to add assertions via compile time transform
GROOVY-3326: Obscure method getTimeZone(java.util.Date) in org.codehaus.groovy.runtime.TimeCategory
GROOVY-4714: @EqualsAndHashCode should allow caching of hashCode values
GROOVY-5928: @ToString should allow caching of toString values
Fix a bug in JsonBuilder.toPrettyString() for zero-length strings.

Zero-length strings are represented in JSON as a pair of double-quotes
(e.g. "").  This is actually a java.lang.String of length=2.  The old
logic attempted to strip the leading & trailing quotes (either single or
double) using a range of (1..-2), which fails for length=2 strings (it
just reverses the 2 chars).  Replaced with a call to
String.substring( 1, size()-1 ).
GROOVY-5925 Casting map as Random results in java.lang.VerifyError
Fixed regression introduced with GROOVY-5836