Refactor module Storage_migrate.State
Refactor module Storage_migrate.State

Instead of allowing the active_send, active_recv and active_copy tables
to each to contain send, receive and copy operations, restrict each
table to only contain its respective operation types.

Eliminate the opty type, and instead use a GADT to allow operations to
be added the correct table without having to specify which table that
is.

Signed-off-by: John Else <37b74501daa612e48fea94f9846ed4ddeb6a8f07@citrix.com>

guard163/xen-api,srowe/xen-api,guard163/xen-api,jjd27/xen-api,guard163/xen-api,anoobs/xen-api,rafalmiel/xen-api,anoobs/xen-api,djs55/xen-api,salvocambria/xen-api,agimofcarmen/xen-api,jjd27/xen-api,guard163/xen-api,rafalmiel/xen-api,srowe/xen-api,euanh/xen-api,robertbreker/xen-api,rafalmiel/xen-api,Frezzle/xen-api,srowe/xen-api,robertbreker/xen-api,srowe/xen-api,rafalmiel/xen-api,agimofcarmen/xen-api,anoobs/xen-api,agimofcarmen/xen-api,robertbreker/xen-api,salvocambria/xen-api,anoobs/xen-api,simonjbeaumont/xen-api,guard163/xen-api,euanh/xen-api,thomassa/xen-api,jjd27/xen-api,djs55/xen-api,Frezzle/xen-api,djs55/xen-api,vasilenkomike/xen-api,salvocambria/xen-api,simonjbeaumont/xen-api,rafalmiel/xen-api,agimofcarmen/xen-api,simonjbeaumont/xen-api,simonjbeaumont/xen-api,vasilenkomike/xen-api,thomassa/xen-api,euanh/xen-api,euanh/xen-api,vasilenkomike/xen-api,jjd27/xen-api,thomassa/xen-api,agimofcarmen/xen-api,anoobs/xen-api,djs55/xen-api,agimofcarmen/xen-api,jjd27/xen-api,simonjbeaumont/xen-api,guard163/xen-api,vasilenkomike/xen-api,simonjbeaumont/xen-api,euanh/xen-api,anoobs/xen-api,thomassa/xen-api,srowe/xen-api,vasilenkomike/xen-api,euanh/xen-api,jjd27/xen-api,salvocambria/xen-api,vasilenkomike/xen-api,djs55/xen-api,rafalmiel/xen-api,salvocambria/xen-api,Frezzle/xen-api,thomassa/xen-api,thomassa/xen-api,robertbreker/xen-api,salvocambria/xen-api,robertbreker/xen-api,robertbreker/xen-api,djs55/xen-api,Frezzle/xen-api,Frezzle/xen-api