add the ability to change the algorithm that is used to generate the token strings

I am using this library in a project that has its own way of generating token strings which is equally secure but still different. it would be nice to be able to use the same algo i'm using in my project to generate these tokens as well.