Include function annotations in Sphinx documentation

Uses a simple autodoc plugin replacement for FunctionDocumenter.format_signature to insert the function signature.

Though looking at autodoc's code, it should already do this...
Add signatures to both functions and methods
Actually support adding a signature to methods

A methods __doc__ attribute cannot be directly written to, so we write to the associated functions __doc__