Handle optional arguments

If "=" is found at the end of a type then make the parameter optional by adding a "?" to the argument name.

Fixes issue #208.