Replace Aruco with Aruco Nano
Description
Replaces the old Aruco detector with Aruco Nano v6. The header has been vendored in a mostly unmodified form, with a small modification to how dictionary codes are created to prevent recreating them everytime the detect function is called. The JNI files have been rewritten from https://github.com/PhotonVision/aruconano-jni due to JNI limitations (JNI_OnLoad being defined already in photon-targeting is one of them). Aruco Nano has no config options (other than the fiducal type), so the Aruco tab has been removed. Aruco Nano's accuracy is currently unknown, but it is known to be much faster than the UMich AprilTag detector, and if Aruco Nano has accuracy on par with the UMich AprilTag detector, it could replace the UMich AprilTag detector, providing a significant boost to FPS in vision pipelines.
Meta
Merge checklist:
- [x] Pull Request title is short, imperative summary of proposed changes
- [x] The description documents the what and why
- [ ] If this PR changes behavior or adds a feature, user documentation is updated
- [ ] If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly
- [ ] If this PR touches configuration, this is backwards compatible with settings back to v2024.3.1
- [ ] If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated
- [ ] If this PR addresses a bug, a regression test for it is added
Should probably convert this to draft until we can better characterized noise