Various cleanup.

ab2str, str2ab, and crackMessage are now static functions.
getUserName is now named retrieveUserName, to better reflect its purpose.
We now throw Exception instances, rather than bare strings.