Syntax highlighting improvements
Keywords are no longer being hardcoded; the keywords file is now
separate. Add a setting to configure the keywords file path. Add a
struct keyword to handle a keyword list.