remove __getitem__ property access, and ensure that Cast.fields returns a copy

makes it even more difficult to accidentally alter Cast._fields (was already a
@property, preventing direct write access)