find_line_number() in decompile.c could sometimes test the
.cached_lineno_vec member of Program objects when the member was
uninitialized and consequently return potentially erroneous results.
So we initialize the member now in new_program() at the same time
.cached_lineno_pc is initialized.
store strlen with strings. This is basically free, since most string
allocations are rounded up by malloc anyway. This saves lots of cycles
computing strlen. (The change is originally from jitmoo, where I wanted
inline range checks for string ops).