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
blarg, yes. Before writing it this way I also looked around for ways to make stderr from upstart go to syslog, since the exception backtrace gets written to stderr by default.  All the answers I found seemed fairly hackish (piping it into logger).

The simple thing to do is just add another OS check here and only set up and use the logger if it's linux (OS X uses a different syslog device anyway).  The long-term fix is to properly separate client and server code.