Added support for protected mode and related instructions.

I've included in this commit the PDF of the design document which
outlines the design. It's probably not useful for most people,
but I'm including it since I suspect that it may be a while until
I come back to this, and it's very likely that this (untested)
implementation I'm committing is buggy. Having the design doc
as a reference to verify the correctness of the code later
will hopefully be very useful.