Added basic type inference code

Added typeinfer.c, which currently [theoretically] works on pinning down
parameter types. Basically, most of this is garbage right now. Don't
worry, I'm working on it.
Fixed a bug with cell_tree_get_offset

Also added debug print to type inference results
Don't get what this was doing in the top-level
Function_table now uses polymorph_ptrs

(instead of using raw polymorphs. Should result in smaller
function_table structures and cleaner, less unsafe code)
Function names are now stored in function struct (as lexids)
Completely eliminated global function table

Later passes now also have their own specialized return types.
Added initial definition of a name table

"Name tables" will now replace every ad-hoc reference to backsymtables,
and will have a better-defined interface.
Made lexer use a name table
Changed all references to backsymtable to "names"
Types of expressions are also now printed with cell_tree_print
Basic inference of expression types
Fixed what happens when param type known

No longer tries to infer further
Basic inference of function return types
Cell tree stores offsets within parent internally
Bottom up transform now prefers leftmost children
Added "local" attribute to polymorphs

Now, whenever a polymorph_ptr is stored in a function table, its local
attribute should be 0. This will enable local versions of polymorphs to
be formed within function bodies, which will allow left-to-right
restriction of function options.
Added copy method to polymorphs
String usage cleanups, realpath platform-dependent

Drastic reduction in compiler warnings/messiness when compiling with a
recent gcc in a unix environment