10x+ speedup when 100 line script with breakpoints

line_of method needs a cache to reasonably handle larger / longer running scripts.

First tried lizmat++'s new 'is cached' trait but that caused an infinite loop somewhere.

So this patch is a manually written cache.