Fixing pointer and array semantics

RHS dereferences are RSTAR_O and LHS dereferences are LSTAR_O

RHS array indexes are RARR_O and LHS array indes are LARR_O

Since arrays are pointers, they need to be treated differently when
being accessed and when being assigned to, just like with pointers.

Adding test print of array assignment to array.cpp

Also fixing sizeof for array indexes.
Fixing param size for class functions
Updating how smoke tests are run
Fixing new op's type
Less hackiness
Printing prototypes in generated code
Fixing call op mapping

If return type is void, don't try to save into a temp.
Fixing contructor's return type in generated code
Using function.param_size over iteration
Starting to support field access
Much fixing of function invocation intermediate code
Class region is located in local
More test code in class.cpp
Updating tasks