~siborgium/prelockdpp

mlock comms, link against fmt-header-only, fix fd leak
Implement set of mapped files
Use libcap (if available) to check CAP_IPC_LOCK capability

CAP_IPC_LOCK is required to bypass RLIMIT_MEMLOCK soft limit
Replace iostreams with fmtlib
Finally get rid of fstreams, fix intr node migration error

std::fstream internally allocates std::filebuf, which handles all file work
and has a rather large buffer. We would create one each iteration, effectively
messing up our no-alloc strategy. It is possible to `reopen` a file, but we
have no access to the file buffer (sadly), which in turn forces us to allocate
one, which is not nice too.

Now with C files & linebuf buffer handling is more transparent.
Use plain set_base_hook<>, no need for tags
Store iterators in uniq_id using raw storage
Use Boost.Intrusive & plf::colony to use as few allocations as possible
get_current_set v3 -- uniq_id set
DRY code a bit
clarify certain ctx fields
get_current_set v2 -- get_uniq_id
get_current_set v1
Add .gitignore
Add DEFER macro, fix dir leak
Efficient get_uptime
Use dirent & co to enumerate /proc entries
Add JSON, get_pid_list
Next