Implement private variables, getter/setters and methods using Symbols

Example implementation for #684 

Not for merging, only discussion.

TODO:
- Implement compiler flag.
- Use compiler flag to selectively turn on new codegen.