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.
The name may be something we refine through the process of dog-fooding the alpha and getting some user feedback.

**with respect to UX and onramp**

an http interface is desirable as a default affordance... yeah? it allows people to sanity check the node with `curl` as soon as they install ipfs.

An example of excellent installation procedure is elasticsearch.

```
Elasticsearch is now ready to run. You can start it up in the foreground with:

./bin/elasticsearch
Add -d if you want to run it in the background as a daemon.

Test it out by opening another terminal window and running:

curl 'http://localhost:9200/?pretty'
You should see a response like this:

{
   "status": 200,
   "name": "Shrunken Bones",
   "version": {
      "number": "1.4.0",
      "lucene_version": "4.10"
   },
   "tagline": "You Know, for Search"
}
```

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/running-elasticsearch.html