mount: fixed mount init + teardown

This commit adds a Mount abstraction (which is really just
a wrapped context closer). It makes sure to bind the mount
to the fate of the Node (i.e. close it if the node ends).
This fixes #350
mount: move Mount func into mount obj
main + daemon signal handlers

This commit changes the signal handler to be added once
the command is executing. this is because the daemon
has its own signal handler, that must try to shut down
the node gracefully first. You know, just in case.
mount: if already mounted, unmount before new attempt

This is because if the user specifies that they want
to mount multiple times, something must be wrong. try
unmounting to reset things and then proceed.
fix ipfs1 mount so it will compile
ipfs1/mount: text + unmounting
Merge pull request #351 from jbenet/mount-fixes

Mount, Daemon, and Signal Handler Fixes
switch DHT entries over to be records, test currently fail
fix validators and key prefix
validator functions and ipns completion
fix routing resolver
make vendor
verify ipns records
make vendor
some comments
feat(util/time) impl RFC3339Nano UTC utility Format/Parse functions

test(time)
expose time format var

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
address comments from PR
Merge pull request #296 from jbenet/consistency

Ipns Consistency
tests(sharness) attempt to execute sharness tests on ipfs2

@jbenet @chriscool

(not to be merged into master) This is a hack to run sharness tests on
th ipfs2 binary. Instead of compiling cmd/ipfs, it compiles cmd/ipfs2
and copies this into test/bin/ipfs.

I thought this would be enough to pass the `basic-commands` test, but
it's not.

Although the output is fairly similar, the `ipfs version` test fails.

```
test (feat/test2) λ. diff version1 version2
1c1
< ipfs version 0.1.7
---
> ipfs version 0.1.5
```

I'm not very experienced with `sh` scripting, so perhaps I'm missing a
key ingredient or maybe misunderstanding the the tests are meant to
work.

Would like to get input on this.

Thanks, @maybebtc
fix(2/version) make it possible to execute before init

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>