Fix subtyping of functions with *args

Fixes #231.
Update test cases
Add test cases
Add test cases
Add test case
Simplify code a bit
Minor docstring tweak