Remove use of realloc

A few other small changes:

* Updates for build tools changes (automake, GNU make test harness, etc.)
* Upgraded our libtap submodule

You don't `free_path` here, but is it really necessary for us to duplicate the strings at all? They don't need to live beyond the scope of the function, afaict.