tweak warning when ->param called in list context

  - move the warning to be the first thing we do since this sub will
return early if there is no param value to set.
  - check the caller since we call ->param internally and we don't
want to warn when we do that.k
  - fix tests to set $CGI::LIST_CONTEXT_WARN = 0
  - add a test for the use of $CGI::LIST_CONTEXT_WARN
  - fix a couple of other warnings, tests now run clean (on my machine)