Refactored evaluate assignment

Moved the code that evaluates an assignment into its own function.
Supplemental control statements for scripting

This implements "for", "break" and "continue" using the existing control
structures inside cs_parser.cpp. They are, after all, just ways of
paraphrasing other control statements. The for statement takes the usual
parameters, but they can be omitted. One caveat is that the for
statement cannot include variable declarations (e.g. int x = 0) for the
initialisation part, only assignments.