Minor fixes.

- Bug fix - use .Errorf() instead of .Error():
  Before this change, an error message for failed tests in files/set_test.go
  wrongly tried to use format strings in a call to .Error()

- Change event constants to be of type EventType rather than untyped integers.

- Slightly relax the locking for registry cache lookups:
  For read access to Discover.registry we only need to take a read lock.

- Some cosmetic fixes.
Add seehuhn
Merge remote-tracking branch 'origin/pr/793'

* origin/pr/793:
  Minor fixes.
Use a separate lock for the subscriber stuff
Test for ChangeRequiresRestart
InSync is the opposite of RequiresRestart...
bug fix: allow folder names up to length 64 in leveldb

When extracting a folder name from the byte slices used as database
keys, bytes.IndexByte() is used to find and remove trailing 0 bytes.
In case the folder name is 64 bytes long, bytes.IndexByte() returns
-1.  Before this change, syncthing crashed in this case with an
out-of-bounds slice access.

The commit fixes the problem and also introduces a test case which
checks for the presence of the bug.
Remove dead code
Test case and goleveldb fix (fixes #740, fixes #796)
Archive a copy of config.xml when the format changes
Threshold for existing languages to be included (75%)
Translation update
Better version change detection (fixes #808, fixes #810)
Restarting monitor process is still considered a restart (fixes #809)
Slightly improve panic log format (...)

 - Don't repeat the first log lines
 - Print panic timestamp in context.
Print some debug info when panicing in leveldb
ldbGenericReplace: correctly handle files with same version but different flags.

This fixes syncthing bug #819.
Merge pull request #820 from seehuhn/fixes

ldbGenericReplace: correctly handle files with same version but different flags
Reinstate ignore permissions
Refactor out functions in main