flow: re-write how struct members are initialized
In the original code it set everything to zero and then set all the
initialized members to the initialized value. The problem with this is
that I want to track what struct members are set to. In the old code I
record that they are set to zero and the initial value. In reality they
are only set to the initial value.
The new way is more complicated.
We create a list of struct members, we record what members are initialized
and then go through and set the remaining members to zero.
There are some bugs I found in the initializing process. They were there
in the original code as well. I have just added a comment to note that for
future work.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>