Fix show reporting an invalid read when showing a function().

Additionally, I fixed up __main__'s signature to only have one NULL. Functions
that take args will now have extra signatures, instead of having an unused
NULL. There's an ever-so-slight memory decrease from doing this (since the
sig for __main__ is now truly function()). But mostly this gets rid of invalid
reads by show.
Kick functions and literals out of bytecode. Fixes #43 and #53.

I made this a twofer because it was easier to kick them both out at once
instead of booting one, then the other in another commit.

With this commit, the vm now has a table of literals, and a table of
function (all declared functions and builtin functions go in. Functions as
values still works though). The bytecode now refers to indexes in those
particular tables instead of writing the addresses of literals or functions.

The immediate benefit of this is that it allows mod_lily to work again
(I broke it a few commits back when I made WRITE_* macros into write_*
 functions within emitter).
I believe that it's possible to reduce bytecode to use 32-bit ints at most,
considering that bytecode no longer stores indexes. However, I'm aiming for
bytecode to be 16-bits (this doesn't seem like an unreasonably small size).