Improve time of target acquisition calculation in PhotonLib
Per https://www.chiefdelphi.com/t/photonvision-beta-2023-apriltags/415626/117?u=gerthworm -
getLastChange() would provide a better estimate of the actual time at which the photons hit the camera lens, rather than simply exposing latency to the user and making them reference Timer.getFPGATimestamp(). This necessitates moving some logic internal to photonlib, as the NT entry is not currently exposed (and, likely, should remain that way)
Update the photonlib internals to provide an estimated "time of observation" by taking the packed-byte NT entry's getLastChange() result, and subtracting the latency. Add API's so the user can access this time.
Update docs examples to reflect the recommended usage.
When we move to NT4, this also lays the API groundwork for exposing the timestamp of the samples.