Switchboard: An Open-Source Framework for Modular Simulation of Large Hardware Systems (Full Report)