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.
Yeah, it would improve readability a little, but we still need to use some of the byproducts of that transformation outside of the hash generation, the raw pubkey bytes are still needed. And calling the marshaling functions twice seems wasteful to me