Working impl of PyFunc.

Function can accept input, can't accept a time yet since the
simulator doesn't yet have a notion of time.
Simulator tracks time, can supply time to funcs.