Don't reuse overspill from an early ps field as part of a later one.
Handle ps fields that extend right under next header.

See comments in commit.  Also deals with the case where one field
appears to extend right under the next's header, but it's really the
next extending left under the first's header.
Add a TODO about handling of tabs in ps output.

We can hope this is a non-issue; it only matters if some ps actually
does use tabs in its output.
Remove spurious cast, refine a comment.
Discovered a hidden complicator to VPSOPTS, sync'd with changes there.

In process_select.c, access to VPSOPTS is mediated via a function
GetProcessOptions() so as to implement a hack to omit the NLWP field
on Linux 2.4 (should probably be Linux < 2.4); naturally, its copy of
the options was out of sync with the copy (including nlwp) in
systype.c; so bring it in sync again and add a comment to VPSOPTS to
remind anyone changing the Linux entry there to make a matching change
in this second place.
Make GetProcessColumnNames() accept a const char *proc.
Move time(NULL) call up the call-stack.

This is one step towards resolving the TODO that accompanies it: we
should really be using the time when PROCESSTABLE was populated.

This makes it possible for a unit test to not depend on the actual
time at which it's run, since it can now pass in the nominal time at
which to believe it's being run.
Add a unit test for SplitProcLine().
Merge pull request #1908 from ediosyncratic/ps-overspill-refine

Refinements to handling of ps fields overflowing under one another's headers