parser: changed get identifier to create new token

modified get identifier function to create new token and return a token
pointer (shared pointer) only when a valid token is found else a default
token pointer is returned; and cleaned up this function a bit

modified function operator function to create a new token when end of
input is reached and changed call to get identifier function (the other
get functions will be updated similarly)

added two more token constructors to support creating tokens
removed id member from token (was used for leak detection code)
added another new token function to table to support creating tokens