Base of IPNS

Adds the ability to express paths as either a base58 hash, a proquint id, or as a domain name (through a DNS TXT record).
im on the fence as to whether or not you should check the error here, or just `return mh.FromB58String(name)` directly