Make the MeasurementSet interface more consistent

This fixes a lot of special casing, code duplication, and interface inconsistencies.