Split contract storage section in components

The logic to retrieve contract storage data & the UI to display it on the contract's page were entirely coupled and hard to read/maintain, and I needed to reuse those parts in different places.