Symtab now calculates shorthashes. No more shorthashes in params.

I bandaged this while creating sys::argv. When I made the sys var to hold the
package, I had to stop and make lexer print what shorthash it was making for
sys so I could use that when doing lily_try_new_var. I REALLY hated doing
this, so I decided to make symtab do all shorthash checking/making. This means
no more passing shorthashes in args. A slight slowdown (microscopic, probably)
because lexer is no longer cheating at making shorthashes.

This is also nice because the symtab can change what it does to calculate
shorthashes more easily if it needs to.
Added tree_oo_call, which handles abc.xyz type calls...

This makes it so emitter, not parser, is responsible for doing class callable
lookups. Since emitter does evaluating of asts already, it's much, much easier
to have it eval and then determine the resulting class to do a call against
instead of parser doing it.

The ast now has a growable string 'pool' that it shares with emitter. Parser
copies strings into it, and tree_oo_call has indexes to the strings inside,
allowing ast to grow it without fear of corrupting anything when realloc-ing.

An axe has been taken to determine_ast_sig in parser. Nothing remains. Good
riddance.
Redo tree_typecast to be entered, fixing GH #21.

@(object: 1 + 1) resulting in 'cannot do object + integer' was the result of
a binary tree taking over the typecast tree as a left side. This is fixed by
entering a typecast tree upon seeing the '@(' token. This means that binary is
unable to mess with the typecast tree (this is how subscripts, list building,
and most other trees work). I've added a test for this behavior to sanity.ly,
though I doubt it will ever occur again.