Add a new derive, `#[derive(SessionSubdiagnostic)]`, which enables deriving structs for labels, notes, helps and suggestions. Signed-off-by: David Wood <david.wood@huawei.com>
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.