Added working syntax check, user colored edges, and a caret listener
that tells the user what line and column they are editing to make error
messages with line numbers mean something