Save CPU number in r15b

r15b holds the current CPU number. This was also used to fix a bug in smp.s
where r14b was used but r14d already was the per-cpu area pointer. So this
comparison was wrong.

Add job/{percpu.s,thread.s} to define structures some structures. I will
make another branch to implement stuff primarily in C now. This is only a
branch because I originally didn't want to use C at all but I can't resist
to get development going faster now :-) However, tomorrow's my last A-level
examination and I'll hopefully spend a lot of time on notos anyway after
that...
Dynamic memory interface

The two functions get_pages(nr) and put_pages(addr, nr) are added to provide
dynamic memory in units of pages.

get_pages() walks the PD to find enough free contiguous pages (indicated by
bit 9 in the PDE being zero). It then marks these claimed. It's as simply as
that.

put_pages() starts at the given PDE and markes the indicated numbers of
pages free again. It is not safe at all!

I should also add a pages_init() function (and an .text.init section or so)
to automatically call some functions after starting all CPUs, so we can
cleanly mark the first two pages marked and not have this logic in code.

Inspired by the with-c branch I started, I will now change the MEMORY layout
to what you already see there with this commit and provide symbolic names
for these areas. There were already changes towards this practice: namely
including other assembly files which I didn't do until now.