Overhauled Schematic Importing and Exporting

Refactored much of our schematic handling code so that it's isolated into classes dedicated to that purpose. Now it's easier to follow what happens with schematics in our code. It's not perfect yet - some more refactoring is needed - but this will help us reliably implement some other fixes for this release. It's a step toward resolving issues #48, #49, and #50.