[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.
Is that actually true? I think the current implementation requires that you add a JS function with the same name as the signal in the object. It also allows a prefix of 'rc' followed by an uppercase letter to get around QML's limitation on uppercase names.