fix warning when compiling with -flto
abstract time retrieval for duration calculations

This lets us prefer using clock_gettime instead of gettimeofday,
specifically to use CLOCK_MONOTONIC_COARSE. Despite both of these
functions being available in the VDSO, using clock_gettime with
C_M_C is markedly faster (executing in about 2/3s the time).
make YCM happy
update: simplify read_multi_msg, rename
always use pre-increment in for loops
remove real_line_size, use line_size

The latter was never actually used. Use it, instead of the other
mysteriously named var.
create sub-structure in archive_read_buffer

We're tracking 2 of the same looking object here. Might as well keep it
DRY.
split up archive_fgets into more manageable chunks

I actually understand this code again. This commit also includes a
rename of archive_read_buffer to archive_line_reader, as this is more
preicse in what the struct helps to accomplish.
update: remove useless if