Removed mutation methods from CharacterClass, and created a new class that has the setters.  In this way I can ensure there's not accidental modification of class data that should be immutable.
Adapted to use MutableCharacterClass.
Changed character load logic to attempt to read in classes individually in a read-only manner.
Added class name to stored information.  Created methods to add and remove spells.
Added method to attempt to load in each class in their immutable forms.  This to to ensure that class data that should be immutable remains that way.