Here's what got implemented:
1) a deep copy. This includes FSs that may be indexed in other views. But we don't index the FSs in these other views in the copy... but, we do create the SofaFS if needed (these are only needed for Types which are subtypes of AnnotationBaseFS. Any SofaFSs added this way do not have their Sofa Data (if any) copied over
2) only checking for src/tgt CASes being the same view in the same CAS as an "error".
3) the bit of code in the copier to insure the SofaFS ref is set for subtypes of AnnotationFS was slightly extended by having it do the same thing for subtypes of AnnotationBaseFS.
A new version of a utility test class to (partially) compare CASes was copied and changed to support comparing different CAS Views. I've only added one test for this that does the basics, and doesn't test the edge cases. We can always do more later