We are not trying to handle user input so `cast` can be a no-op. Also extract the base36 normalization logic, let the binary class handle the serialize encoding and add some tests.
ref: https://fizzy.37signals.com/5986089/collections/7/cards/1302
ref: https://fizzy.37signals.com/5986089/collections/7/cards/944