fixed needle tests for function needles
Rename eq__.

It's not descriptively named, and it's hard to visually distinguish from eq_.
Be consistent with indentation and with the order of "result" and "expected" in needle tests.
Simplify test_group_needles.

There was no reason to define the ignored first items of the tuples in such depth.
DRY by using @unsparsify_func on needles_by_line.
Rename pack() to key_object_pair(). Vet test_unsparsify(). Don't name a key/value pair "val"; that's confusing.

I just could not remember what pack() meant, even after looking at it for two days.
Pull the key_object_pair call out of span_to_lines.

It had nothing to do with span_to_lines and makes it clearer what by_line does when pulled up into it. Also, DRY.
Correct docs on Position index bases.