Add our own implementation of base64 encoding

Rather than cheat and use a library, we now have base64 encoding working
using pure clojure.

Protip: we're probably boxing and unboxing all over the place and being
terribly inefficient.