[FastAPI] Rework model __init__ exceptions
Our init exceptions are meant to unify the exceptions used for bad column values when we construct them. Currently, in most models, we only allow relationships (and not their ID foreign key columns). We should modify this behavior so that it behaves like a DB backend would and require either a relationship or FK for a required column.