Cpu refactor

This pull request takes into account feedback from @lionleaf after he read through the whole chapter in context of the rest of the solution part of the report.

It should hopefully make a lot of things clearer, as well as shift the focus of the chapter from boring to more interesting stuff. In addition, it should fit in better with neighboring chapters.

It's still missing a proper ending, but I'm having a hard time figuring out how to write it.
Input on this will be greatly appreciated.