Change all str_to_int 'base' args from int to unsigned
Add strn_to_uint32()

Use to implement str_to_unit32()
Add malloc_read_whole_file()

Use to implement read_whole_file()
Add size_t arg to strn_to_sid_t()
Configurable MOTD (Message of the Day) on HTTPD root page

Also improve root page HTML: change <br> to <br />
Fix config file timestamp bug

Ensure that timestamp always advances by at least one second every time
the config file is modified, add test case

Refactor test defs: detecting started HTTPD is not specific to Rhizome

Refactor struct file_meta and associated functions into "io.h" and io.c

Add various strbuf helper functions for formatting struct timespec
and struct file_meta to assist debug logging
Fix Rhizome manifest parsing bug

If an over-large manifest was supplied, signature extraction went
into a tight loop
Improve test framework: shell backtrace from forks

Was not showing the point where the fork() was invoked
MDP packet filter rules configuration

Configurable rules file path: mdp.filter_rules_path

Add filter rules parsing code, add filtering to outgoing as well as
incoming packets

New test script: tests/mdp with two test cases

Improve test defs: new execute_servald() function

Widen MDP port number format from 8 to ten chars to accommodate leading
"0x"