(WIP) Collab

Opening this pull request as WIP to get feedback and more eyes on it. It is not ready for proper merge, but a few commits might be worth cherry-picking early, such as the Typeclass-aware QuerySets, and the ability to check different lock types from one lock string. Just let me know if you're going to do that so I can handle any rebasing/commit fiddling accordingly on my end.
I can't help but wonder if this could not be written more explicitly. Code reuse is great and all, but the overloading calls using the parent class' pre_load() etc  *are* a bit hard to follow for the person wanting to follow and eventually overload these commands. 
Not saying I off the bat have any cleaner solution in a pure code-sense. But not having func() nor super() appear in these commands (but only in the parent) does make it hard to refer and grokk these and the documentation side by side for a beginner. This is more of a pondering than a criticism at this point though.