implemented metric validation prior to storing

Before metrics are stored we do a validation check.  Validity is defined by the charm package - This pr just adds the call to the state server. The metrics tests have been updated to check the failure modes of validation and existing tests have been updated to ensure they use valid data