Previously, had a bug in which when the root of a speculative object
finished running we would not trigger derivative speculatives to begin
executing.  This fixes that.

Note however, we currently just pass the first phase of commit for all
speculatives that had been waiting.  Should provide a nicer way to
hook into functionality so that subclasses can override this behavior.
Updated speculation test to ensure that speculation speeds time to process.
Check to ensure that changes by speculatives actually update internal values.