fix issues #12 #13 #14 #15, add function return type warning

- type tracking in branching statements is properly handled
- variable type is reset in gimmeh statement
- fix type inference NullPtrEx in unconditional loops
- TypeGenerator now attempts to infer function return type
- warning is generated if return type is ambiguous