Declared methods are no longer put in registers.

Declared methods are still stored in symtab's var table, but are no longer
given a register in __main__. They are instead loaded as literals and are
marked with VAR_IS_READONLY.. Here's why I'm doing this:

* Methods loaded this way will get flagged as VAR_IS_PROTECTED, and never get
  a ref bump. Because they will not get a ref bump, the interpreter will be
  able to do threading easier: No lock, ref bump/drop when loading any method.
* I don't intend to allow declared methods to be assignable. However, methods
  and args and (in the future) method vars being reassigned are fine.
* The same goes for builtin functions. I'm not all that interested in those
  being reassignable either.
* Methods/Functions that are global (not from args) can now be called without
  being in a register. This saves a ton of o_get_global calls when calling
  methods.
* Fewer registers for __main__ by not having to load all methods into its
  registers. This was already getting pretty bad in sanity.ly

Calls now take another value, which determines how they get their call info.
If this value is 1, then the value given is assumed to be a readonly var not
in any register. If 0, it's assumed to be a local register (method as an arg).
This required some fun changes to vm and debug to support that.

Creating new vars now takes flags.. This allows creating vars that are
readonly by passing VAR_IS_READONLY as a flag.
No registers for builtin functions either.
Simplify lily_vm_prep a bit by removing redundant code.
cast_ast_list_to -> emit_list_values_to_objects.
Reorganize lily_syminfo.h.