Hello World

- AST changes
  - Expressions cannot be statements
  - functional calls can be expressions or statements
- refactor AST printing to be uniform and separated from the types declaration
  - removed redundant print methods
- split SAST variable declarations and assignments into two different types
- split SAST checks, printing and helper methods into separate files
- add string literals support in code generation

# - Got Hello World to Compile and Test in CI!
What does it mean that `expr` can no longer be `stmt`s, and why is assign a `stmt` and not a `expr`. Sorry if this is obvious.