refactor to Decider, pass []HistoryEvent instead of a single one

change `type Decider func(HistoryEvent, interface{}) *Outcome` to `type Decider func([]HistoryEvent, interface{}) *Outcome`


/cc @fabiokung