2508 - starting to merge evalArgs with bindParams
2509
2510
2511 - refresher: unsafe table ops are only for scopes
2512
2513
2514
2515

Snapshot in the middle of debugging.
I've already fixed one hard-to-find bug: a call to eval() in evalAndBind
that I'd accidentally forgot the scope param in.
It wasn't detected because my tests were copied from bindParams and were
using literal args.
2516

Ok, that bug is fixed. My earlier unit test for already-eval'd args
was incomplete.
2517
2518 - new eval merges evalArgs and bindParams

Instead of eval'ing all args and then binding all params, this impl
evals each arg and binds its params before moving on to the next one.
Only top-level args are eval'd, but binding within them may be nested.

Diff this against 2514.
The final bug (compared to 2517): another place I was calling eval()
directly, rather than evalArg().
2519
2520

Provide uneval'd args to bindParams before we permit quoting some param
aliases.

Mildly concerning to see the creep in args to bindParams.
2521

Why did I think I needed to redo evalArgsAndBindParams to make this
change?

The real problem is that def :case fails to default params
to nil in some situations.
2522 - don't leave non-matching param aliases unbound

This is more consistent with binding missing params to nil.
Now we can go back to the simpler definition for join.
2523 - now param aliases can be selectively quoted
2524