Bech32 Kotlin implementation.
Taken from Bitcoinj Bech32 Java implementation
Decodes a Bech32 string.
Encodes a Bech32 string.