file_read(): improvements and better error messages
carp_lex_tokenize(): fix a memory leak

In the case the file is 0 bytes, we still allocate an extra byte for
NULL termination. This fixes a leak at exit where that 1 byte buffer
isn't freed.
Cleanup carp_vm_make() in preparation to fix segfault