Added `eiki_readln()`.

`eiki_readln()` reads a line of text from a file descriptor into a
dynamically-allocated string.
Use `eiki_readln()`.

- Changed `eiki_execv()` to `eiki_execv_fd()`, which returns the read
  pipe instead of the read data.

- Combined `eiki_fill_stack_frame_name()` and
  `eiki_fill_stack_frame_src()` into `eiki_improve_stack_frame()` and
  make them both read from the same execution of `addr2line(1)` using
  `eiki_readln()`, halving the number of `addr2line(1)` processes run.

- Make `eiki_get_stack_trace()` use a temporary pipe instead of a
  temporary file created with `mkstemp(3)`, since the latter isn't
  clearly async-signal-safe. Changed
  `eiki_read_backtrace_symbols_line()` to read from a string rather than
  a file descriptor accordingly, since pipe file descriptor's can't be
  `lseek(2)`'d.

- Removed some unnecessary memory allocations in
  `eiki_improve_stack_frame()` and `eiki_gdb()`.

- Document build flags in the README.