Fixed line numbers (I think)
Rearranged directive checks so they're in a sensible order
Cleaned up console output (debug shows only in logs)
#ELSE, #ELSEIF, and #ELSEIFN now throw sensible errors when detected. They'll be absorbed by #IF[N]DEFs when implemented