refactored into mpserver classes, now using multiprocessing

Major revisions. Probably a little bit broken at the moment, while I attempt to get FPGA firmware flavour support baked in. SLowly getting there though!
Added support for multiple different firmwares