make sure let translate works if not started at column 0

the let translate function assumed that the command always started on
column 0, which is used to determine which error is returned when one
is detected; however, this will not work once support for multiple
statements (separated by colons) is added

the code now saves the column of the first token (whether the LET
command token or other token) and uses that to check if at the first
column
replaced table flags() function with better hasFlag() function

the hasFlag() takes a second flag argument and handles the and operation
to check if the flag is set
implemented better way to handle token usage

instead setting token unused appropriately upon error to make sure it
gets deleted, tokens are not set unused when first obtained from parser
and set used when appended to the rpn output list