Merge branches 'master' and 'new-coroutine-design' of https://github.com/cwi-swat/rascal into new-coroutine-design
Added 'terminate' expr to the muRascal and TERMINATE instruction to the
RVM.
Added TERMINATE instruction to the RVM interpreter.
Resolved an ambiguity.
Started modifying the 'yield' semantics.
New semantics of the 'yield'.
Started adding 'guard' expression to the muRascal.
Modified the semantics of the muRascal 'terminate' (for now, let it
play a role of a failure).
Working on the 'return' semantics specific to coroutines.
Made a distinction between function and coroutine declarations in the
muRascal and RVM.
Implemented a coroutine specific 'return' semantics.
Renaming: terminate -> exhaust.
Working on the 'guard' semantics.
Added GUARD instruction to the RVM interpreter.
Implemented the muRascal 'guard'.
Merged the 'hasNext' and 'next' semantics.
Started updating the muRascal library to use the new coroutine design.
Updating the muRascal library to use the new coroutine design: work in
progress.
Made a syntactic distinction between: module names, function names,
types and different kind of variables; enables to do certain check
at the syntactic level.
Resolved an ambiguity.