internal/compile: optimize Funcode.Position (#201)
internal/compile: optimize Funcode.Position (#201)

Linear searches through the line-number tables show up as a major
hotspot (>90% CPU) in one application.
In particular, the same handful of functions are called repeatedly.

This change decodes the LNT at most once and retains it,
allowing us to use binary instead of linear search.
sort.Search was inlined to avoid the dynamic dispatch.

In a profile of the above application, using sort.Search reduced
real time to 550ms (down from 3500ms), and Funcode.Position to
5% (down from 90%) of CPU cycles.
Inlining sort.Search further reduced it to 2.7%.

Fixes #200

google/starlark-go,google/starlark-go