feat(server): introduce a cors handler

Introduce a handler that lives under the gorilla mux and adds the
correct headers based on the request and always returns 200 OK when
there OPTIONS is called on a URL.

This fixes the ability to DELETE from the dashboard on peer X when peer
Y is the leader. As a side effect it reveals some bugs in the dashboard
though notably:

- Due to the RTT immediatly refreshing the dashboard doesn't work and
  deleted keys are still there

- For some reason PUTS from peer X are creating directories and not
  keys.
fix(mod/dashboard): grab the leader URL

query etcd to find the URL of the leader before making any http requests
that can't be redirected from a browser like PUT/POST and DELETE.
chore(mod/dashboard/resources): use the latest version of the code
Merge pull request #320 from philips/add-cors-options

feat(server): introduce a cors handler
Merge pull request #322 from xiangli-cmu/master

bump deps
fix(mod): redirect dashboard to /dashboard
Merge pull request #324 from philips/redirect-mod-dashboard-trailing-slash

fix(mod): redirect dashboard to /dashboard
fix(etcd): remove duplicate DataDir setup

In the refactor of the configuration and flags I think that we
accidently placed this logic twice. The side effect is that we always
ended up with a `.etcd` directory.
Merge pull request #329 from philips/remove-redundant-datadir-code

fix(etcd): remove duplicate DataDir setup
fix create folder before write info file