Ipns name resolution

This branch is not yet complete, but before i move forward, the name resolution code (in namesys) needs some critiquing. There are also a decent number of bugfixes in this branch that i ran into while trying to get the code to a point where i could test ipns.
If the hash of the public key is an entity that carries its own semantic meaning, would it improve the method's readability to tuck away the implementation of the transformation?