Small error reporting bug.
Fixed a type checking error associated with returning function calls.

Public Function get_num() returns Number
{
    return num;
}

Public Function increment_num() returns Number
{
    num += 1;
    return get_num();
}

would cause a type checking error.  This was because when type
checking, the function would compare to the return type of getn_num,
which was a tuple and put the entirety of the tuple in one tuple index
to compare against given return type.  Ie, it would say increment_num
should return {Type: Number}, but instead, it is returning,
{Type:
  [{Type: Number}]
}

Fixed by unwrapping in case of function call returns.
Fixed type checking on variable initializations from function calls.