This makes its api consistent with other add endpoints (see
origin-visit-status-add as one example).
This is preparatory work towards removing origin-visit-upsert.
It's similar to origin-visit-upsert but it does more:
1. it checks for origin consistency
2. it's able to either deal with visit with id (replayer case) and visit with
no id (the existing use case)
Points to rely some more on the model validation. This also drops the
dateutil.parser we want to phase out.
Related to T2310