Reload configuration tables

Reintroduce limited configuration reloading. This is the first step of the two step plan discussed in #97: re-parse the configuration on SIGHUP, and update the running configuration with the new tables. Since it is possible to load a new configuration without a table referenced by an existing listener, we do not remove the old tables. Conceivably a user could repeatedly load new configurations with different table names until the exhausted all the memory on their system, I do not recommend doing this. Since this could only be done by a local user with permissions to write to the configuration file and send SIGHUP to sniproxy, I don't consider this a problem.