pegbox: designed a semaphore

Written down() and up() in C.  Now to translate them to asm...
pegbox: implement (untested) semaphore
pegasus: flush stdout whenever a newline gets written
pegbox: move the percpu stacks to their own page

They were at the top of page 0 and crashed into kernel data!
But, something still seems to be wrong.
pegbox: semaphore: add some debug text
pegbox: add a semaphore test to exec_init
pegbox: fix various errors with the LDscript and get the intvec right
pegbox: get_page: don't give out kernel ppages
pegbox: fix buggy free_page (no-one was using it anyway...)
pegbox: semaphore: add a bit more debug text to down()
pegbox: fix LDIR arguments in do_fork
pegbox: semaphore: fix down() bug (DEC A doesn't set carry bit!)
pegbox: add another sched_yield to the semaphore test

Necessary for pid 2 to make it to up() before pid 1 hits the panic()