Add TiePlaceAssignmentTest and test: assignPlace

These tests are mostly for ensuring consistency across versions, since
this logic is mind-blowingly simple. I might add a test for forChar, for
the same reason.
Add Sweepstakes.intIndexOrZero

I may well move this into ArrayUtils, but I'm just trying to get past a
potential out-of-bounds array index that I noticed when examining
assignPoints.
Make intIndexOrZero static
assignPoints: Convert most direct spec[] indexes to intIndexOrZero

This fixes a bug I noticed where if there are too many places in
quantities, it could overrun spec with too-high indices.

Note that the averaging routines check the indices religiously, so I
didn't make the change there.

On a side note, regex is awesome.
spec\[([^\]])+\] -> intIndexOrZero(spec, $1)

(So are backslashes, I suppose.)