allow configurable directory for keys/config and mirror config in the KVS

Add a new class flux_conf_t to make configuration easy to work with and arrange for configuration to be mirrored in the KVS under config.*.  When running within a session, configuration is read from the KVS, unless a file is explicitly selected.

Config and keys are co-located in $HOME/.flux or other configured directory.  Allow this directory to be configured.  In the build tree, point to $(top_builddir)/etc/flux.  This will allow our tests to generate and use keys (and configuration) that don't interfere with the invoking user's keys in $HOME/.flux.