create size destructor creates a new lru list that stores at most
size elements, and calls destructor on any element before it's kicked out
of the list
escape_gen escapeworthy_map escape_char s returns an escaped string based on
s as follows: if (c1,c2) is in escapeworthy_map, then all occurences of
c1 are replaced by escape_char concatenated to c2.
write_script t argv0 dest generates a tab-completion bash script for
t, using argv0 as the command name to tab complete on, writing the
script file to dest