Remove ActorOperation and fix logic in Actor.ProcessMain/ProcessMessages.

Actors now also eagerly remove themselves from the scheduler
when they are disposed, removing at least one atomic check
from the scheduler inner loop.
Allocate actor continuations lazily.

Some actors only respond to messages so allocating a continuation
for them is just wasteful.
Fix an NRE in Actor.InternalDispose when _cont is null.
Rewrite the SingleThreadActorScheduler loop to use a queue.

This should make it much better at dealing with high amounts
of actors that do nothing.