Require all config options to be defined.

Previously if we encountered an undefined config option we allowed it to be set.
This led to a number of options that are no longer used at all and options that
have been renamed, hanging around in config files. In some cases there were
config options referenced in code that were undefined.

Now:
- make the server raise if it encounters an undefined option during
  initialization.
- clean up the config we ship, and add defines for missing options
  (mostly build related)
- check to see if threads die in grr_server. Previously all threads could die
  but the init job would continue to run.
- set up a temporary logging to syslog to record problems with the config.
  Previously config init failures would not create any log messages because the
  logging system hadn't been initialized yet.

Added a section on config variables here:
https://github.com/google/grr-doc/blob/master/releasenotes.adoc
Same config, but I think we need completely separate client and server startup modules and that's a significant TODO we've had for some time.  If they were separate we could assume linux on the server and set up the temporary logger as in this change.

The exception backtrace already goes to stderr by default, it's not very helpful.  You start the server and after a few seconds it dies (now anyway, before this change it just ran forever).  You look in the logs, nothing.  You go look at the init scripts to try and figure out how to run it interactively.  Once you have the right incantation and run it again you can find out your config is bad.  This is too painful to debug, it really needs to go into a log.