Subclasses shouldn't be allowed to mutate schema

If this ran on Ruby 1.8 before, this commit definitely breaks it since
it uses #initialize_dup.