adds base64 decoding (fixes #5656)

fixes #5656
I think you'll get better performance if you use an array and the integer value of the character code to lookup the values. (Be sure to use an unchecked conversion from `Char` to `Int`, so that you only check for valid range once.)