Wired up unsubscribing. Switched to a "subscription handle" approach.

It's long been a source of bugs in Narya that you have to unsubscribe by
passing in the object that you got in the first place. This enables
situations where you request to subscribe to an object, but then decide that
you don't wnat it before the subscription request completes.

The "I'm not thinking about this case" solution, which is often implemented, is
just to say "gee, I have no object, I'll just skip the unsubscribe request",
but then the object comes in later and is never unsubscribed from. The proper
solution is a bunch of backbending to ensure that when the object finally comes
in, you turn around and send a request to unsubscribe.

In Nexus, we do that backbending for you, and you get a handle the instant you
request your subscription, and you can unsubscribe any time, before or after
your subscription is completed.
This should be an abstract class (like Action).

We definitely do not want you to try to do something clever like implement
Request on a class that does something else. A Request is meant to be a
closure, and nothing else.
Use proper Scaladoc wiki syntax.
Added support for runtime safety checks that help avoid Action/Request bugs.

It's unfortunately too easy to do something like the failing tests demonstrate,
where you capture a reference to an Entity via an outer-this pointer and then
make a call into it instead of returning the value properly and making the call
in the outer Entity's execution context.

These runtime tests cause such errors to fail by clearing out any captured
outer-this pointers prior to executing the action. Unfortunately they are too
expensive to be enabled all the time, so one has to manually enable them during
development via: -Dnexus.safety_checks.