Handle std::string operator= overload (manually)
Removing newlines from print_typeinfo()
Using print_typeinfo() for clarity in final code generation
Fixing return values

Since we're using a return statement directly, we need to ignore the
usual implicit derefencing of addresses, since it does that for us.
Updating hello world to use string operator= overload initializer