Fixed includes.
`eiki_install_signal_handler()` catches SIGABRT.

Make `eiki_install_signal_handler()` catch SIGABRT as well. Added
`eiki_abort()` to re-register the default signal handler for SIGABRT and
then call `abort()`; this is safe since both `signal(2)` and `abort(3)`
are async-signal-safe. This is useful for allowing Eiki to print a
parting stack trace when aborting; notably, glibc's `assert()` calls
`abort()` on an assertion failure.
`eiki_print_signal()` prints memory address.

Changed `eiki_print_signal()` to also print the faulting memory address
if available. While this is usually redundant with the stack trace, it
may be useful if for whatever reason the stack trace is unavailable.
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.