Added kernel turn-time-tracking. Worked on filesystem. Made some other fixes.

The kernel will yield before giving all processes their turns if the computer has used more than half of its time. This does not disrupt the turn order - the kernel resumes where it left off.

The kernel will not yield after giving all processes their turns if the computer has used less than 10% of its time and there are still events left in per-process queues.