fix return type of Builder.finalize() to concrete subclass
While we may choose only to specify that finalize() returns a system.Finitesystem (or system.InfiniteSystem), this is probably a bad idea, as the docstring of finalize() is the only place that people can find out about builder.FiniteSystem (which contains the documentation for the 'sites' attribute, for example).