Made purgeUnneeded and autoHash self-contained.

This may be more of a semantic thing for me.  Some of the methods returned values and some didn't.  None really needed to return anything.  It's easier to read if the assignments are gone.  Therefore, I made `purgeUnneeded()` and `autoHash()` self-contained.  It's a bit easier to follow what is going on in the `save()` method.