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