This PR introduces breaking changes for the Sun API.
Sun is now a struct: users can no longer use Sun as a reference type. However, immutability is not enforced and functions like setDate and setLocation are now defined as mutating.
Sun initializer now accepts a Date parameter (defaults to Date()).
Sun now conforms to Identifiable, Equatable, Hashable, and Sendable protocols.
Utilities such as Angle, DMS, EclipticCoordinates, EquatorialCoordinates, HMS, and HorizonCoordinates now conform to Equatable, Hashable, Sendable, and Codable protocols.
This PR introduces breaking changes for the Sun API.