func (rt RealTime) AfterFunc(d time.Duration, f func(), token int) Timer {
	return TimerWrap{time.AfterFunc(d, f)}
}
AfterFunc wraps time.AfterFunc. It returns something conforming to the
abtime.Timer interface.
package abtime
import (
	"time"
)
func NewRealTime() RealTime {
	return RealTime{}
}
type TimerWrap struct {
	T *time.Timer
}
func (tw TimerWrap) Channel() <-chan time.Time {
	return tw.T.C
}
func (tw TimerWrap) Stop() bool {
	return tw.T.Stop()
}
func (tw TimerWrap) Reset(d time.Duration) bool {
	return tw.T.Reset(d)
}
type RealTime struct{}
func (rt RealTime) Now() time.Time {
	return time.Now()
}
func (rt RealTime) After(d time.Duration, token int) <-chan time.Time {
	return time.After(d)
}
func (rt RealTime) Sleep(d time.Duration, token int) {
	time.Sleep(d)
}
func (rt RealTime) Tick(d time.Duration, token int) <-chan time.Time {
	return time.Tick(d)  
}
func (rt RealTime) NewTicker(d time.Duration, token int) Ticker {
	return tickerWrapper{time.NewTicker(d)}
}