Add custom environment variable via ScriptOptions

+ Fix #145
`VALID_VARIABLE_NAME` should be replaced with a string macro. It started to get messy at this point and the `VALID_VARIABLE_NAME` started to conflict with the `STRING` macro I was working on. The same goes for allowing `SEMICOLON` and other special characters (escaped quotes included) inside of the `STRING`.