Handle possible NULL returns from crypt(3). Revised the included MD5 routines to help the compiler detect a common subexpression between steps in round 3. Switched to heavily cut-down BSD license.