[Async DB] Documentation/minor tweaks

I'm adding documentation, making minor tweaks as I'm reading through the code. Some of the changes are likely unnecessary/incorrect as I may be overlooking some finer aspects of the new code.

Let me know if I should continue with this or not.

I just started, so I plan to push more as I go through the code (planning to get through all the data code this weekend). I try to make sure nothing breaks, but I also haven't tested this code yet.

(I see you addressed the comments I made, so I'll have to rebase this anyway)
Seems like we should validate input first, before doing anything else.