[ELY-40] Split out the Base64 handling into it's own utility class.

I have already added to out meeting agenda that I want us to talk about PasswordUtils in general - overall I don't think it is going to be a good practice to have one general util that parses all password types in all formats they can be represented in - to some degree I think that is a responsibility for the realm.  Not saying that providing the utility for parsing is completely bad, I just have reservations with the one method parse it all approach.

In the scenario I have the format used in LDAP is similar but not a match with what we have so far, I also don't want users to be able to store a clear password in LDAP that matches our other formats.

Anyway the purpose of this pull request is to split out the Base64 methods first, this does have a side effect of exposing a couple of additional classes used to iterate the arrays but I think we can reduce the visibility of those later if we can revisit PasswordUtils.