Add support for dropping privileges

This implements support for changing the effective uid and gid to a user
configured in the configuration file. Good for avoiding any security
issues as nipapd is no longer run as root.

Due to how the backend is built with Twisted and it's initiation
process, we can not listen to ports below 1024 when dropping privileges
as we drop privilegs before binding to a socket. This is per design,
more can be read at
https://github.com/SpriteLink/NIPAP/wiki/Dropping-privileges-and-listening-to-low-ports

Part of #361.
Fixes #364.