introduce Mirror struct for mirror thermal calculations
This struct is created by the precomp_mirror function, and is essentially the union of the Material and Optic structs, holding all relevant properties for a given optic for thermal noise calculations. It can be used in place of either the Material or Optic structs.
Coating thermal noise functions are modified to accept this struct.