Compiler: Cleaned up function return type handling somewhat. It is now start_function and start_lambda that set the return type for the frame. This reduces the amount of code duplication a bit, and makes the type handling a little clearer.