Added / for "normal" division change "div" to int

the / division operator now uses its own casting method because the
result is always a float the operands always need to be floats.

the div division operator now only works on integers it will throw an
error if it determines either of the operands are not integer types (no
casting will happen) per
http://www.freepascal.org/docs-html/ref/refsu39.html#x129-13900012.8.1

The control variable for the for loops is checked to determine that it
is integer type and the initial/final values will be cast to integers if
needed per :
http://www.freepascal.org/docs-html/ref/refsu52.html#x145-15500013.2.4

for loops have their own assignment generation code that checks for type
integer gen_assign_for