Combine rework with raspi servers

This is the combination of two branches involving the raspi servers and a rework of the whole codebase.  Since they dealt with the same files, I wanted to merge them outside of master.