Start using our config values

- Added pid file requirement (so the pid file can be written somewhere).
- Verify the config values given to us.
- Deallocate our config upon exit.
- If a pid file exists then read it and make sure there isn't already a running version of us, otherwise continue with startup.
- Moved some more larger pieces of code to their own files (such as the command line handline functions).
- Use the bind address given to us in the config.
- Use the port given to us in the config unless the port was also provided on the command line in which case use that one instead.