Don't require config file for supervisorctl

 * Adding require_configfile parameter to options.Options to be able to
   disable config file check for options.ClientOptions.
 * Refactored out searchpaths to become a member of options.Options.
   This made it possible to 1) test for the content of it and 2) disable
   automatic config file detection from within tests (and thus evade
   external side effects that might vary from developer to developer).
 * Adding an additional test of options.ServerOptions to make sure it
   still exits if it can't find a valid configuration file.

This is an initial commit that tries to fix issue #62.

All tests passes on my workstation. However, both `supervisord` and
`supervisorctl` crashed when executed. I will have to look into this.
Renamed `process_config_file()`

Renamed `process_config_file()` to `process_config()`.

The function does so much more than simply process the config file (such
as applying defaults). I also intend to factor out the code that does
not take care of parsing/reading the config file.

All tests pass on my local workstation.
Written a test that reproduces exception

The exception is thrown when

    $ supervisorctl

is executed in the terminal. This exception was the reason I withdrew
the pull request https://github.com/Supervisor/supervisor/pull/71.
Refactoring `Options.process_config()`

Moving a chunk of code out from `Options.process_config()` to
`Options.process_config_file()`. The latter function is now responsible
for only reading the config file while the former initializes config
data structure in general.

This commit makes it possible to skip the reading of an external
(on-disc) config file while still using default values etc.

The test `ControllerTests.test_real_controller_initialization(...)`
still fails because some default config values are not initialized
correctly. All other tests pass.
Fixing failing test

The test `ControllerTests.test_real_controller_initialization()` no
longer fails. This was fixed by making sure
`ClientOptions.plugin_factories` was initialized even though no
configuration file has been read.

All tests now (finally!) pass on my workstation.
Making sure that a test never finds a config file.

The intention of the test is that it is not supposed to find a config
file anywhere on-disc. My local workstation does not have one, but
future testers might.
fix test in childutils for DTS timezones
Update PLUGINS.rst

Added note about concurrency for supervisor-wildcards plugin
Password hashes must be SHA-1 and in hex

I just wasted a surprising amount of time trying to figure out what the right format was for password hashes.  Just these few little clarifications would have helped.
Merge pull request #164 from nyaruka/patch-1

Password hashes must be SHA-1 and in hex
Remove "Distributed Control" description.  Closes #169
This was probably intended to refer to the ability of supervisorctl to control
supervisord on a remote machine.  The wording "groups of machines" could be
misleading since supervisorctl can only control to one supervisord at a time.
Update "Contributing" info.  Closes #154
Handle ValueError raised when parsing command in get_execv_args

Added unit test
Merge pull request #176 from srwilson/master

Handle ValueError raised when parsing command in get_execv_args
Add changelog entry for error handling added to get_execv_args.  Closes #175
switch PROCESS_STATE_CHANGE to PROCESS_STATE in docs
Merge pull request #183 from btubbs/master

Updating docs with recent config changes to PROCESS_STATE
Merge pull request #156 from hizel/childutils-test-fix

fix test in childutils for DTS timezones
Adding note to documentation about arbitrary TICK intervals
Merge pull request #186 from cyounkins/master

Adds note about non-support for arbitrary TICK_* intervals, and offers a solution