First real batch of changes for keyword parameters, this handles them inside functions and closures, checks for errors in declarations, and records the defaults