Add tests for &key arguments in functions
Add &optional arguments.

Python doesn't really have that concept, so make them clash with &key arguments.
Merge branch 'master' into pr/170