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