Add bool and conditional statment support in ast

Additionally have changed ast->op to ast->type, because it makes more
sence when ast could be a variable. It doesn't make sense when it is a
variable and to access the value you have to do:

    ast->op.integer

Hence the change to:

    ast->type.integer