fix(mod/lock): Use dedicated channel to shutdown goroutine properly

If closeChan is available and stopWatchChan was closed by defer
select selects a single channel randomly. This causes a panic sending to closed
channel.
fix(mod/lock): Use CreatedIndex in the first node to watch

ModifiedIndex in the lock directory is not incremented and the event
store has only 1000 histories for now.

Acquiring a lock is not queued while (index - ModifiedIndex) > 1000 and
prevIndex exists.
feat(prevNode): add "prevNode" to "Set" response
feat(prevNode): add test for prevNode
refactor(dashboard): Restructured front-end dashboard code.
fix(dashboard): bugs in key browser and stats page.
Fixed key add, key delete bugs. More refactoring.
fix(build): Use ngmin. Fix all introduced erros in previous commits.
bump(github.com/coreos/raft): ef3280ce54f60fff98a72012f547ed2b3415841f
Merge pull request #528 from coreos/restructure-dashboard

Restructure dashboard & bug fixes
fix(Documentation): add etcd-dump to libraries and tools

Fixes #325
Merge pull request #514 from cenkalti/prevNode

feat(prevNode): add "prevNode" to "Set" response
Merge pull request #543 from philips/bump-goraft

bump(github.com/coreos/raft): ef3280ce54f60fff98a72012f547ed2b3415841f
fix(v2): Use case-insensitive check on bool query params

Fix issue #261
doc(api): Document prevNode
Merge pull request #545 from bcwaldon/doc-prevNode

doc(api): Document prevNode
fix(dashboard): disable some tab indexes.
Merge pull request #544 from bcwaldon/case-insensitive-query-params

fix(v2): Use case-insensitive check on bool query params
Merge pull request #546 from sym3tri/dashboard-tabindexes

fix(dashboard): disable some tab indexes.
bump(mod/dashboard): rebuild the dashboard for the latest fixes
fix(scripts/build-release): use cross compilation