v0.4.5 - restore deviceId/deviceAssetId for live Immich (v2.7.5+)

Reverts v0.4.3's drop of deviceId / deviceAssetId on the Immich
upload. Andrew DeJong reproduced v0.4.3 failing on his actual
Immich v2.7.5 (MR !2): the live server enforces both fields even
though they are absent from the vendored OpenAPI spec.

The vendored spec at api/immich/openapi.json (sourced from
immich-app/immich/main) does not model AssetMediaBase and lists
neither field on AssetMediaCreateDto. The server enforces them
anyway. v0.4.3 trusted the spec; this release trusts the server.

Lesson logged in the commit body: the spec is not the source of
truth for write-side contracts. v0.4.6 will add a write-side smoke
test against a live Immich (in CI when IMMICH_BASE_URL +
IMMICH_API_KEY are set; locally otherwise) so the next contract
drift fails the release pipeline before binaries ship.

Apologies for the v0.4.0 add -> v0.4.3 remove -> v0.4.5 re-add
cycle. The smoke is the durable answer.