Lifetime Parameter Variance

- Declare variance of lifetime parameters in structs
- Handle variance of lifetime parameters in subtyping
- Check struct declarations for coherent variance