Add optional and rest types

Added syntax for specifying optional arguments and rest arguments in
function types
Expand examples

Added examples of rest argument and optional argument syntax