Fix dumb pointer arithmetic and stack pointer bugs

Fill out the scope and descope functions; add the evaulation function
for the function definition function.
Make the hash table function use the global length of the table
instead of passing it into the function.
Add a function to add to the table of functions.
A couple lines in the lexer to make it allocate less memory.