feat(util) add datastore Closer Wrapper

@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(eventlog) initialize event logger with silent defaults

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
debug(2/ipfs) make cmdDetails loggable

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

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
refactor(2/init) extract const

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

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
refactor(2/init) use util.FileExists

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

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
feat(2/init) expose init with defaults

will support daemon initialization

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

# TYPES
# feat
# fix
# docs
# style (formatting, missing semi colons, etc; no code change):
# refactor
# test (adding missing tests, refactoring tests; no production code change)
# chore (updating grunt tasks etc; no production code change)

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
debug(core, datastore, daemon) wrap errors

@jbenet @whyrusleeping @mappum

very helpful for tracking down errors. the stack traces are only
shown when debug mode is visible. They function best when caught at the
source.

I propose we use this errors package as a drop-in replacement for
fmt.Errorf and errors.New in all of our code, and use errors.Wrap for
external errors as they emerge from others' libraries.

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

Signed-off-by: Brian Tiger Chow <brian.holderchow@gmail.com>
feat(2/daemon) --initialized

@jbenet

now, ipfs can be built and executed in one step:
```
docker run jbenet/go-ipfs daemon --initialized
```

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
docs(eventlog/formatter)

@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
fix(2/daemon) initialized --> init

@jbenet

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

@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
doc(eventlog) init

@jbenet

yeah, these are just sane defaults

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
docs(Dockerfile) update docker 'run' example

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

this is silly but whatever

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

looking forward to fixing these again

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

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
test: test init output
test: cat test actual output
fix node context (tests pass)
bugfix: node teardown is the last man to go down

Warning: during normal execution node teardown must be the
last thing that happens because command requests return
io.Readers, which may still be constructing or processing
their output. The node (and its subservices) is needed for
this. good night and good luck.