Drastically refactored the script. Parsing now uses a custom class to represent statements. Set command argument completion now uses the AST and is now more accurate. Changed how settings are handled. A callable class is used to get and update most settings. It makes it easier to handle variables that need to cycle through a set of predetermined values. It will also enable chaining of variable updates (though that has not been implemented yet). The zBuffer setting now uses a set of preset stepped values. A few unit tests have been added.