[docs] Add Sphinx-based documentation (not built by default)

Initial work on documenting the module and also added some comments (in the documentation) how we should probably sanitize the API as starting point for discussion.
Where does the "rc" prefix come from? I guess that's just a random invention? Maybe we can make it so that signals with names that begin with an upper case letter will have their first letter lowercased and then matched? (while still keeping the "rc" fallback working, but undocumented and deprecated), in other words, a "SomeSignal" signal will map to the "someSignal" function?