support callable objects in Call() and Process()

this got broken recently when support for partial application was added.
keep mididings.extra module namespace clean

- hide local imports
- don't import PerChannel into mididings.extra
generate documentation using sphinx

- move most function and unit descriptions to docstrings.
- lots of cleanup and other improvements.
- remove old html documentation.
- mididings.extra documentation is currently missing.
combine units in a single document