[lib][bio] fix the default erase hook to not leak memory and properly return errors
[lib][bio] fix the default erase hook to not leak memory and properly return errors

Also remove the init hook requirement in the bio layer by statically
initializing the root data structure (was small anyway).

sndnvaps/lk,ErikCorryGoogle/lk,srodrig1/lk,hollanderic/lkstuff,ErikCorryGoogle/lk,srodrig1/lk,hollanderic/lkstuff,srodrig1/lk,travisg/lk,sndnvaps/lk,sndnvaps/lk,littlekernel/lk,sndnvaps/lk,littlekernel/lk,sndnvaps/lk,ErikCorryGoogle/lk,srodrig1/lk,hollanderic/lkstuff,hollanderic/lkstuff,littlekernel/lk,minglun-tsai/lk,littlekernel/lk,minglun-tsai/lk,minglun-tsai/lk,travisg/lk,minglun-tsai/lk,srodrig1/lk,travisg/lk,travisg/lk,ErikCorryGoogle/lk