Added more parsing functionality

Started work on adding expression, function and identifier parsing. New
code does not yet compile, as there is an undefined type variable in the
definition of Expression and I haven't yet figured out how to reconcile
that and make the whole thing work