Add two small userspace test utilities.

I also deleted a couple of mostly useless ones that were never added to git.
A couple cosmetic cleanup, plus remove unused code
Use PAGE_SIZE instead of 0x1000 in a few places
Another magic number removed
Use void * instead of uint8 * for {ata,disk}_{read,write}
Start working on a ext2 read-only driver.

Currently at a VERY early stage (2-3 hours in). ext2_detect now prints
the first few entries in the root directory (the first block's worth).
Increase scrollback by 10x to 150 screens
Plenty of ext2 work. Still ETXREMELY ugly code everywhere.

I need to commit more often, though; I just spent 30 minutes debugging
some nonsense issue that I would've found easily if I could have done
"git diff" and get back a useful result (i.e. not the 100s of lines
changed since yesterday!).
I FINALLY managed to read a full, large ext2 directory. MESSY CODE.

Pre-cleanup commit, so that I don't manage to screw something up
without the ability to revert..

In short, the problem was that there are unused directory entries in the
middle of a directory, that you are supposed to *skip* (ahead by 1 blocksize),
but I never saw anything about that in the docs; I had to figure it own myself.
My initial assumption was that you should *stop reading* when you find such an entry.
Instead, you need to calculate (from i_blocks) how many blocks the directory
consists of, and **keep reading no matter what** until you've checked them all.

The part that made me perplexed is that the blocklist in the inode actually points
to these **unused** directory entry blocks as if they are part of the directory, yet
they contain nonsense information (apart from the first four bytes, the inode number,
being zero). I suspected disk/image corruption before I realized what the heck was
going on!
Remove most of the debug code