Added some code to test read_region

Again, not actually called yet
Added a header for memory functionality

I'm thinking that memory allocation functions won't go in this, just
low-level functionality like setting up and iterating over regions
Renamed some functions to avoid name clashes

I forgot this is C, which has (to my knowledge) no good way to resolve
name clashes and no namespacing.
Added memory initialization test

Now that I actually have some code to test there, I don't think it's too
early to have this. The test fails, but that's to be expected at this
point in time.
More work on getting read_region to work

It still crashes, but I think I'm getting closer to it not crashing.
Added terminal_writenum interface for debugging

Now that I think about it, I'm not that impressed with those names. I'd
change them, but I think that that entire section will change later on
so I won't bother.
Initial implementation of terminal_writenum

Preliminary implementation. Tests to come (this code needs it), as soon
as I come up with a good way of testing the terminal functions.
It doesn't even build

That's what I get for making commits late at night. If there were anyone
else who actually needed this code, I would have just broke the build.
(It still doesn't build, because of a linker error)
Swap to gcc for now (again)

clang is having linker errors and I don't really feel like tracking them
down right now.
Pulled out number to string transformation code

Phase one in my plan to morph that code into a form that's easier to
test
Setup now builds libgcc as well

It didn't work before because gcc does not like being built from within
its source directory... I'm not going to lie, that not working doesn't
exactly give me a good impression of the gcc team. While it's possible
that I just picked up a weird expectation of how things should work from
somewhere (FreeBSD?), I sort of expect that I can unpack their source
tarball, cd into the directory, and just build it.
In any case, I updated setup to reflect the new procedure for building
binutils and gcc.
Made the Tupfile build with libgcc

This fixes the compiler errors I've been having. I'm probably going to
come back to this (again), but for now it seems to build things as I
expect.
Pulled num_to_digits into another file

It doesn't really belong in tty.c, so I moved it.
Fixed a bug in num_to_chars

Before it looped forever, now it doesn't (I think, pending tests).
Incidentally, this change is what prompted me to revisit setup. It
wasn't compiling because dividing a 64 bit integer on i386 requires
libgcc (it's missing __umoddi3 and __udivi3).