Improve logging

This implements parts of #152.
Mainly the `IPFS_DEBUG` flag and the `ipfs log` command to change log levels of a running daemon. I chose add a explicit `GetEnvBool()` to the `util` pkg.
this is a case where we do want `fmt.Fprintf(os.Stderr, ...`, because this should be output cleanly to the user in the cli (the logger has a complicated format, and may be redirected later on).

Think about this like `git` or other tools. normal errors part of the use of the application should usually result in the user getting a simple error message. The logger is to signal what's going on under the hood, a `logger.Error` is closer to an unexpected problem.