Added notes about the update listener fields.
Whoops, remove debuggery.
Comment tweak.
Use a weak-keyed map instead of the weak ScopeKey class.

I still want to revisit all this caching because guava's caches
aren't quite an exact fit for what we're doing. But as long as
we're using them, this is better than the wacky ScopeKey.
The main reason is that when the reference is collected the hashcode
will change. That is such a bad idea for a key Object inside a Map
to get a new hashCode or redefine its own equality while stored.

Especially when this was using SoftCache, which was backed by a
HashMap, which caches hashcodes. Because the insertion hashcode
would be cached, you could never retrieve or remove the value
using the exact same key object later.
Formatting: remove // documentation inherited on @Override methods.
Added some new Easing functions.

CubicIn, CubicOut, CubicInAndOut, CubinInOvershoot, and CubicOutOvershoot.
I should rig up a thing for testing these, but they should be correct.