Separate HttpServer from WebApplication

This allows for using different HttpServers and more importantly using
multiple HttpServers, so that an application can listen on multiple bind
addresses and ports.