Fixed the calculations for the tabs to center them properly.
Also added markers to make it easier to see the tab positions and added y-axis versions of both tabs and markers.
This works for odd and even for both pin/shoulder...
BUT what doesn't work yet is having tabs on adjacent sides, the tabs interfere with each other. That's the next thing to fix... perhaps as another type but the logic of that is tricky.
Cleaned up the code and provided comments for all functions and modules.

Just realized, this needs to support fingers with configurable mark and space
in order to support double-thick walls. Need to rework the finger code for
this and it might not resemble the current code at all, so I'm committing this
as it is in case I break everything with the mark-space changes.
Got the mak-space code working but only for x-axis and the code
desperately needs cleaning up and commenting, but worthy of another
checkin.

Should also rename the modules/functions consistently. Can probably get
rid of all the old code now and have the mark-space version as the only
"fingers" code. It does everything the old code did and more and it fixes
the glaring problem with adjacent edges.

However, none of this code accounts for kerf in any way, perhaps there
should be some attempt made to fix this, but I'd rather just get the kit
working properly first. Then do a test cut of the entire board in acrylic/
thin MDF and see how bad the fit is. I have no idea if this will need a
positive or negative kerf and I cannot be bothered to implement proper
kerf management in this code now and I suspect it will work reasonably
well without trying to make the code too complex by trying to handle kerf,
especially while it is unknown if it is even an issue.

That was a bit more rambling than I hoped!