feat and fix(replica.go)

add executeList()
refactor dummySM.Execute()
fix a bug in r.findAndExecute(): change !isAtStatus(committed) to !isBeforeStatus(committed)
so that it won't break when meeting an executed instance.

add tests for executeList()