This patch refactors the socket management to use select, as well as refactor all of the commands into a COMMAND_ENVELOPE dictionary. This patch also adds the Dockerfile and docker-compose.yml files