lily_syminfo.h is now lily_core_types.h

This name better reflects what the file has become: A grouping of all the
types that are a central part of the interpreter.
The lexer now makes literals in symtab instead of parser.

While in the middle of trying to fix #68, I noticed a problem with the newly
added nesting of lexer entries.

The problem is that parser depends on a concept I like to call 'forward
token'. What this means is that many functions expect to have the next token
called up for them already (instead of having to scan it in before starting).
This has worked rather well across the interpreter, because it allows some
scanning to pull in extra values and pull even more if necessary. One example
of this is how 'return' and friends make sure that } is the next token if
they're used in a multi-line statement.

The problem comes with saving/restoring lexer state. Since parser depends on
forward token, the proper way is to...save and restore the token. If this
isn't done, then the word after an entry is skipped (that's bad). I've got a
near-complete patch for #68, but forward token is breaking it.

Example:  x = [10].size()  function k() ...

Forward token means that, before entering size to parse a definition, the
current word was 'function'. This information is lost when returning out of
the saved entry.

Anyway, lexer now creates literals instead of parser. This ensures that the
literal information won't get list if there's an entry of some sort. It also
allows some simplification in parser.

I plan to do a couple touchups before I can commit #68.