Disconnect aliases from minimal schemas

Aliases are shared when Schemas are copied, which is usually desirable,
but the makeMinimalSchema need to return new Schemas with a fresh set
of aliases, or we end up with a lot of confusing behavior as one piece
of code tries to set an alias and affects a completely different one,
via a shared AliasMap they both got from the minimal schema.