Adds test for Main function

This should serve as a complete end-to-end integration test. It runs the
main method in one thread, and sends a request to the server. The server
loosely ensures that the startup message and the basic transaction
message are both logged.