Lexing and parsing for for loop.
Added methods for getting iterables that will be used by for loops (for lists only so far).
In case that declared a variable in the inside of predicate of the for
loop, need to add it to type check ctx.
Emitting code for for loop across lists.  Because java does not permit
casts, such as

(ArrayList<NonAtomicNumberVariable>)ArrayList<RalphObject<Double,Double>>

cannot do:

for (NonAtomicNumberVariable var :(ArrayList<NonAtomicNumberVariable>) map.get_iterable(_active_event))

instead, must:

for (RalphObject<Double,Double) __var : map.get_iterable(_active_event))
{
    NonAtomicNumberVariable var = (NonAtomicNumberVariable) __var;
    ...
}
Added test code for for loops on lists.
Disqualifying for loops of the form

for ( Identifier in in_what_node)
    statement_node

must declare the variable in the predicate of the for loop.

for ( variable_type_node variable_node in in_what_node)
    statement_node
Added checks to ensure that for loops work on atomic lists as well.
Added for loop emitting for maps.  Note that casting described in
previous commit for lists was changed because object returned from map
is not a RalphObject, just a Double, String, or Boolean.
Added test for for loop on maps.