Hello World

- AST changes
  - Expressions cannot be statements
  - functional calls can be expressions or statements
- add string literals support in code generation
- 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

# - Got Hello World to Compile and Test in CI!