keep track of simulated time for every instance

based on an idea by maze@google.com
new implementation of message routing

This implementation respects ordering by virtual time.
Also, tests for instance (together with instance-attached parts
of message routing).