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.
my solution 3)
Have two timeouts, one longer timeout (maybe a few seconds) and a smaller timeout (maybe 5-10 ms). The smaller timeout can be extended as many times as needed, but the longer timeout will happen no matter what.