py: Move to guarded includes for compile.h and related headers.

> As per #1022, this (and all others here) will need to be #include "py/lexer.h"

Which unfortunately requires patches all makefiles, which is a bit more than I wanted for this piece of work, but going for it.