#### Description
This PR makes component.InstanceID immutable. Previously it was a struct
with all fields exported. Technically this is a breaking change, but the
only thing using the InstanceID is the in-progress
healthcheckv2extension.
<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes#10494
<!--Describe what testing was performed and which tests were added.-->
#### Testing
units
<!--Describe the documentation added.-->
#### Documentation
code comments
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Co-authored-by: Antoine Toulme <antoine@toulme.name>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
#### Description
Duplicates component status reporting features from `component` into a
separate module, `componentstatus`. In a future PR, when
`component.TelemetrySettings.ReportStatus` is removed, I'll update Core
to depend on `componentstatus`.
This work isolates component status public API from `component` and
`extensions`, which will allow us to move forward with their 1.0 work
while component status reporting matures.
<!-- Issue number if applicable -->
#### Link to tracking issue
Related to
https://github.com/open-telemetry/opentelemetry-collector/pull/10725
---------
Co-authored-by: Matthew Wear <matthew.wear@gmail.com>