Cleanup and mostly fixed #6

Rolled the previous implementation into a cleaner loop, and inserted a
2,4,6,8 level while I was at it. The tick labels still overlap at times,
but it's much better than it was. Fully solving #6 will take a bit more
work. I might be able to get away with simply always hiding the
sub-minor tick labels, though.