Fix concurrency issues with weakref dicts and update tests.

WeakKeyDictionary and WeakValueDictionary now build their dictionaries
by using Google Guava, as supported by jythonlib.dict_builder, which
now also supports providing such backing for dictionaries derived from
dict.

Update weakref tests to 2.7, with appropriate skips for Jython. Added
gc.collect() (with sleeps) as necessary so that weak reference
lifecycle can be observed in tests, including callbacks (sleeps allow
us to observe the reaper thread in action).