Implement Linq OfType
Checkpoint:
  Add a test case for interface covariance
Checkpoint:
  Tag generic parameters as in/out as appropriate, and add a formatting test