metrics.yaml support

The metrics.yaml file can be included in a charm to declare the metrics the charm will report. If the file is not present, no metrics will be allowed to be sent from the unit (not even built-in ones).
Perhaps lose a level of indentation here:

     if err == nil {
         b.metrics, err =  ....
     } else if _, ok := err.(*noCharmArchiveFile); !ok {
         return nil, err
     }

?