Add signal handling

- Rewrote the ParseConfig function to support rehashing from signals
- Added some code to handle errors received in the main loop
Allow changing of user and group once we have bound to the socket.