Immich bindings and CLI in OCaml

Update clients to use regenerated Peer_tube module

- Rename Peertube module references to Peer_tube in client library
- Refactor bushel_peertube to use generated Peer_tube types
- Remove hand-coded JSON codecs in favor of generated ones
- Add helper functions to extract values from Jsont.json for untyped fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+3
+1
bin/cmd_albums.ml
··· 51 51 url; 52 52 status = Requests.Response.status_code response; 53 53 body = Requests.Response.text response; 54 + parsed_body = None; 54 55 }) 55 56 end 56 57 ) env
+2
bin/cmd_faces.ml
··· 59 59 url; 60 60 status = Requests.Response.status_code response; 61 61 body = Requests.Response.text response; 62 + parsed_body = None; 62 63 }) 63 64 end 64 65 ) env ··· 118 119 url; 119 120 status = Requests.Response.status_code response; 120 121 body = Requests.Response.text response; 122 + parsed_body = None; 121 123 }) 122 124 end 123 125 ) env