Fix a call to _check_clean
A few things:

Change TWeakRef to create the underlying weak reference inside __init__. This fixes a bug where creating a TWeakRef to an unweakrefable value (like an int) would cause breakage inside _make_mature.

Get rid of support for TWeakRef(None). The code for making this work was becoming burdensome, and it'll be a lot easier to handle this sort of thing in a utility wrapper class.

Add is_alive, which just returns self.get() is not None. This will allow for API compatibility with a utility wrapper class that allows None values.
Get rid of the old TVar/callback wrapper hack; it's no longer needed with the changes made in the last commit.
Comments on TMutableWeakRef
Add TPossiblyWeakRef, a wrapper around TWeakRef that holds strong references when its referent isn't weakrefable
Added stm.utils.changes_only, a callback decorator that filters out duplicate invocations, and added watcher (which I think I'm going to get rid of)
Allow stm.watch to be used as a decorator
Add atomically_watch, a wrapper around stm.watch that automatically invokes stm.atomically, and documented changes_only