Started working on foreach support
We can now correctly throw exceptions from expression tokens

This was needed as the incoming Variable in the ForEachStatement
has to be of type LiteralVariable, otherwise it is basically a syntax
error.

There is however one bug with this, somehow we get a segfault if we
call ParseFree in src/tokenprocessor.cpp if we're unwinding the stack.
Due to this it will currently NOT free this if we are unwinding the stack.
This is basically a memory leak..
We should probably store the key as a LiteralVariable, as we require it to be that anyway
First version with working foreach

It is however still fairly limited at the moment. It is at the moment
only implemented in the C code generator, not in the jit. Also you
probably can't loop over a map that you're already looping over inside
another loop. Example:

{foreach $key in $map}
  {foreach $key2 in $map}
  /* stuff */
  {/foreach}
{/foreach}

That is probably not possible, it is probably possible to loop over $key
in the example. Also the looping order is pretty much undefined as for now.
Foreach loops work using the jit as well now
Fixed the parsing of LiteralInteger

It turns out \d is not supported by flex.. [0-9]+ however is :P
Complete list of everything supported in flex compared to some other
regex implementations can be found here http://marvin.cs.uidaho.edu/Handouts/regex.html
Implemented generating C code for literal array access using the member_at callback
Literal array access now also works with the jitter
Added a ListValue to the public interface
Reworked the MapValue to work with a _destroy_later approach as well

This is just easier housekeeping really.