Work in progress
Checkpoint
Add error messages for misused parameters

1. Required number of parameters not declared
2. Param declared but not actually used in the function
3. Function not called with the correct number of params
Fix jshint
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).
Add error message for incomplete block inside function definition
Check for incomplete blocks in the main workspace
Revert "Check for incomplete blocks in the main workspace"

This reverts commit 6862ed7da90fc640d6cc60f40a195977c743c113.
Removing this error for now.  It may have unintended side effects.
Add final error message strings from @kapone97
Fix `grunt test`
Code review feedback: move testsForAllProcedures out of required blocks
Refactor feedback tests for functions: use `some` instead of `!every`
Address nits
Restrict new error messages to modal function editor levels
Merge pull request #588 from code-dot-org/better-error-messages

[Finishes #83414966] Create error messages for common function editor mistakes