Add statistics support to timecall

Instead of total execution time and mean execution time,
add support for collecting mean, std, 10 and 90th percentiles
over the last N calls to a function, e.g.:

    @timecall(immediate=False, stats=1000)
    def foo():
        pass