slist: put the sm_state itself into ->possible not a copy of the sm_state
This was a huge memory waster. We did a bunch of needless copies with
merge_sm_state(). The add_sm_state() function doesn't even add the new
sm_state if it was already included. With this change I don't have any
more places on my kernel build where I bailing because functions are too
complicated.
But another reason to do this is that I want the ->possible states to have
a valid ->pool pointer for some later work.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>