Fix #350: APIManager.create_api now accepts SQLAlchemy column objects

A shot at issue #350 that I reported yesterday. The new syntax (`Model.name` instead of `'name'`) applies only to "direct" columns, since AFAIK SQLAlchemy has no cleaner & static-analysis-friendly way of referencing columns of related models.

As for tests, I wasn't completely sure what's the level of test coverage is common in this project, so I made some opportunistic changes to existing test cases. Let me know if you'd prefer a separate test case covering every facet of this new functionality.
This is a redundant `else:`, remove it and unindent the next line.