Implement ipfs init -d (change datastore location)
Refactor config file location, add IPFS_CONFIG_DIR

Removed config.Filename and replace it with config.GetConfigFilePath that
takes a configuration directory as argument instead. Makes code simpler.
ipfs.getConfigDir now also return the default configuration dir instead of
an empty string in some cases.
Correct style.
Fix error handling
Check the datastore is writeable when initializing
When initializing datastore, create directory with correct permissions.
Merge pull request #126 from mildred/master

Rework config file location
no need for ; here

cc @mildred
this import snuck in

wish go-dep warned you about dependency problems.

cc @whyrusleeping
changed gitignore to accomodate atom

See https://github.com/atom/atom/issues/3660
switch over to using a lock file for daemon connections
respect the lock file, also cpu profile
don't load identity in offline mode (temp)

**For now**, we don't need to load/parse the private key
(which causes a signficant delay in commands) when doing
things entirely offline. This may change, and in that case
the private key should be loaded on demand.
core context + cancels

Erroring out in core setup should cancel the context
to ensure subsystems are shut down. This has to happen
all over the place we use contexts.

@perfmode @whyrusleeping
amendment to core context + cancels
const for lock file, + fix unreachable Close
fixed close sync issue
daemon_test: use proper temp dir
do init id offline, only dont parse keys

(test was failing)
vendor go-logging + camlistore/lock