Annotate S.Range with start/end/step types. For temporary variable creation
Add system reserved temp var name restriction
Move forbidden_prefix to Builtin.ml
Use temp vars to support backward for-loop (for 10 down to 1)