Improve lastToken logic in EPState

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Move EPState to its own file

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Move Token and Symbol to their own file

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>