A very elaborate, but also very fun revision because all
puzzle pieces are finally "falling in place".
- replaces lingalg annotations + flags with proper sparse tensor types
- add rigorous verification on sparse tensor type and sparse primitives
- removes glue and clutter on opaque pointers in favor of sparse tensor types
- migrates all tests to use sparse tensor types
NOTE: next CL will remove *all* obsoleted sparse code in Linalg
Can this code go to a verify method for SparseTensorEncodingAttr? I see it is duplicated in line 227-231.