Move Deposit creation from api/common.py to api/collection.py
Motivation:
- it's not an operation in common, only 'POST Col-IRI' may create a deposit
- it makes the BaseAPI._deposit_put function simpler and less complex
This looks like a very long commit, but there are actually four small
changes. In order:
- actually move that creation (the large block of code was moved from one file to the other)
- make the 'deposit_id' argument of most functions of 'int' type instead of 'Optional[int]', since we now get the id very early by creating it in the Col-IRI view.
- unfortunately, this means creating a Deposit and committing it directly to the DB, which changes the behavior of the API, as it used to run checks *before* committing to the DB. Therefore, instead of immediately committing to get the id, it passes the Deposit object, which will be committed later by _deposit_put if all checks pass. This means changing the 'deposit_id: int' argument of many internal functions to 'deposit: Deposit'. This is why the diff looks big, but it's actually a trivial change
- updated test_add_metadata_to_unknown_deposit because the API now returns the right error message, as a side-effect.