There are currently a lot of different scripts in tools/ that interact with the same base board functions (the ones found in boards.py). The goal of this PR is to take the special behavior found in each one of these scripts and instead of being disparate, making them a part of a BoardManager class which will be a convenient front-end for python scripts to init boards, read sensors, update bootloader/firmware, drive the motors, etc. The only thing that will be left afterwards is a bunch of scripts which feed the outputs of argparse into the boards class (and maybe do some looping).