Add error message for function declared but not used in workspace
Param matching should allow creation of additional functions

Long-term it would be better to match a minimum number of definitions for
each required definition.  E.g. require 2 functions with no params and 3
functions with 1 param.  However this isn't easy to do in the current
`getMissingRequiredBlocks` and the current impl will work for all Course 4
levels (student is only ever required to edit one function at a time).