Add date to labs and restore other labs attributes

This brings labs in line with how vitals work, by which I mean now labs have dates, not just lab results. This is important because labs are essentially containers for lab results, so labs need dates since they're the first-class object, not lab results. (Just like how vitals are the first-class object, not vital results.)

Gonna add comments inline and would love feedback.