[x] Clean up top-level documentation for explaining threaded example communication/authentication requirements and how the example does or does not satisfy them.
[x] Add doc strings to all functions and types.
[x] Ensure existing doc strings are correct and thorough.