Optimize linear_util cache lookup.
Optimize linear_util cache lookup.

Simplify code to build a hashable payload:
* Sort the params at construction time.
* Separate stores and transforms into separate fields, to make it easier to hash and test equality of the non-stores.
* Don't build tuples in __eq__(), instead just test fields for equality directly.

Make some small optimizations to the Store implementation: use __slots__, test for object identity rather than relying on hasattr().

google/jax,google/jax,google/jax,tensorflow/probability,google/jax,tensorflow/probability