Creates a new macro `impl_from_infallible`, and applies it to custom error types in the codebase. Closes #1222.
Add a new `base58` crate to the workspace and move the `bitcoin::base58` module to it. Done as part of crate smashing, specifically so that we can make `bip32` into a separate crate.