added IndexOpExpr to ast and grammar

This allows expressions of the form `expr[index]`, e.g. for tuples `t[0]`. The
expression parses properly and is added to the AST, the stages of the compiler
don't perform any operation on it yet, though.

First steps toward issue #11.
added IndexOpExpr codegen

The C backend now properly generates code for IndexOpExpr. As of now, the
indexee is required to be a homogenous tuple, i.e. a tuple with the same type
for all its fields. This limitation exists due to the fact that the tuple is
cast to a C array in order to allow indexed access. This will change as soon
as *UnionType* can be compiled.

This closes #11 with a preliminary implementation. A more general solution is
required at a later stage, when more type features have been implemented.