10x+ speedup when 100 line script with breakpoints

line_of method needs a cache to reasonably handle larger / longer running scripts.

lizmat++'s new 'is cached' trait doesn't handle the line_of method correctly.

So this patch is a manually written cache.