server: consolidate server stuff in server

Move initialize_server() and server struct from main to server.  It's
way more logical to keep the server stuff in server.c than having some
of it in main.
console: break out console from main

The console stuff is advanced enough to belong in a separate compilation
unit.
server: pass server struct to server_main()

server_main() should really take a server struct and not some hacky
void-pointer-is-fds crap.
main: remove exit() from parse_command_line()

This (hopefully) makes the code a bit easier to follow.
main: refactor cleanups

Use the correct macros from list.h and move some variables around.  This
hopefully makes the code a bit cleaner
gitignore: add cli_test

Commit 25860d9, "test: add cli_test" added a new test binary but it was
never added to .gitignore.