ELY-5 bis

This incorporates a slightly cleaned up version of pull #5 as well as a refactor to move the password string parsing facilities out into a separate utilities class, unifying all parsing/generating of crypt strings.
I hate any form of wildcard import ;-)  But I know others are more relaxed about it.