(maint) Clarify "spill_over" for call_by_name

The spill_over concept was incredibly confusing, partly because it was
designed for a much complicated case than is actually supported right
now. The currently supported system is a much simpler switch between
having parameters specified or not. This changes it to make that clearer
throughout and also remove extra checks that were being done when they
weren't needed.