Add a general cache to Context.

It's a property bag that can be used to store arbitrary Context-tied
objects and guarantee that they are destroyed (if necessary) when the
Context is destroyed.  This is a cleaner alternative in many cases to local property
bags indexed on the Context's ID.