Rework config file location

Implement IPFS_CONFIG_DIR and refactor code to make it simpler. Fix bug in `-c` option handling in `init` subcommand, and add `-c` support to `config` subcommand.

Also add `ipfs init` `-d` option to change default datastore location when initializing ipfs.
yeah good point. would be good to do that and fail out quickly. Though, it's no guarantee the dir wont disappear right after, and still before we write more, but hey-- at least fail fast in most cases.