move BlockHeaderStorage into its own file
add equality methods to all data structs
add random data struct generation for tests