joel4: added debugging info to build

Each file is now built with DWARF2 debugging information.  This allows
debugging tools (such as objdump) to interleave source and assembly level
dumps.
joel4: improvement in page mapping for root task

Not 100% yet, but kernel no longer triple faults.  We can now load
pages, and start execution.  There is a problem still with logical
mappings of physical pages, in part because this is for the root task
which is a special case.  We need to pick a logical execution address
and stick to it.
joel4: script to create symbol listing for bochs

Bochs debugger is still the easiest to use for problems with page
tables.  This script generates a symbol listing (mapping between
symbol name and addresses) in a format that bochs can load.  That
way, during debugging bochs can show which function we are executing.
joel4: can make syscall

The root task pages have been mapped, and we can now access code in
the first userspace task.  To start, we must test the syscall
mechanism, which allows userspace code to call a kernel function.
The call works (we can debug print a character) but the return path
(sysexit) doesn't work yet.
joel4: create 32-bit target executable on 64-bit host

Added flags to specifically create a 32-bit executable.  This is to fix
a problem encountered when building on a 64-bit host (Ubuntu 12.04 64-bit).
I have not retested on a 32-bit host, since I currently don't have one
running.
Merge pull request #18 from jnider/dev

Dev