Make `block_data` return custom errors
Make `block_data` return custom errors

This is far more messy then initally intended because I wanted the error
change inside the seperate parsers. However, there is some type errors about
the compiler not being about to deduce the output type.

sourrust/flac