The reason for using annotations is to use the syntax - our decorator
has no advantages over passing kwargs to interact[ive]. So this adds a
proper demo, with a 'Python 3 only' subheading.
Also, preserve the order of function parameters from the signature where
possible.
This uses a backport of the Python 3.3 signature machinery that @minrk
found and improved.