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
clang-tidy: warning: unused function 'getSparseTensorEncoding' [clang-diagnostic-unused-function]
not useful