Increment disk offset in readseg()

The wrong offset variable is incremented in readseg()'s loop, which
meant that the same sector was read over and over.
Increase Rust load address

The Rust ELF is long enough (~0x2500 bytes), that when loaded at
0x100000, the load address of the .text section (0x100200) is actually
within the loaded ELF.  As a result, latter parts of the ELF are
overwritten during the loading process.
Build Rust via llc

Rather than having rustc emit object files, have it emit LLVM IR, and
compile that with llc.  The LLVM IR has no references to the problematic
__morestack.

Use sed to remove and replace bad parts of the IR.

The first, the dereferenceable() paramater, is added in a very new
version of LLVM, newer than my llc, so it must be removed.

The second is a static constant from libcore's str module.  rustc
generates IR stating that it is "available externally", but it also
includes the value.  Since the value is available, simply switch it it
"internal".
Switch back to main test program and run!

Remove the simple iterator test, switching back to the main VGA test
program.  It actually successfully runs and prints!

The .bss section for Rust is not zeroed, so there is currently a helper
function in the vga module to fix up some globals.

The iterator in write() does not work, it simply returns without
iterating.  This may be due to the uncleared .bss.  For now, putc is
used directly.