we need to extract this interface from the struct. i need to also break down the interface more, to better show what parts the caching is used, move some functions from the cache state to the underlying. don't merge
This PR makes the SSZ encodings less demented and more compact/flexible overall
Co-authored-by: Giulio <giulio.rebuffo@gmail.com>