Improved message on config file read error

Previously, "Error: could not find config file ???" was
printed when a config file could not be opened. This also includes when
the file had the wrong read permissions. Thus, an incorrect error
description was given (since the file actually existed).

This commit corrects this behaviour. This is done by introducing the new
error message "Error: could not read config file ???". This message is
now presented when the config file exists, but can't be read. The
original message is only presented when the config file actually does
not exist.

Additional tests are committed that ensures correct behaviour.

This commit fixes issue #61.
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.
Add note in help about restart and config changes
Simplify; no need to create a range every loop if all you are testing is if `i` is within bounds.
Verify that key/value pairs are correctly separated.

Test that there is, in fact, an '=' equals sign separating the key and value. If not, there is probably a syntax error in the value somewhere, such as a missing comma. Without this change, the lexer happily uses the next key as a separator, and provided there are enough tokens left you get unexpected results:

     >>> dict_of_key_value_pairs('KEY1=look-ma-no-comma KEY2=ends-with-comma,')
     {'KEY1': 'look-ma-no-comma', '=': ','}

Testing for the equals sign catches the above error.
Merge pull request #124 from mjpieters/patch-1

Simplify dict_of_key_value_pairs
Merge pull request #125 from mjpieters/patch-3

Verify that key/value pairs are correctly separated.
Remove trailing whitespace
Add test and changelog entry for dict_of_key_value_pairs fix
Fixing `tests_require` in setup.py

The attribute need only to specify *additional* dependencies for running
tests. Please see http://packages.python.org/distribute/setuptools.html
for details.
Merge pull request #128 from JensRantil/cleaning_setup_py

Fixing `tests_require` in setup.py
Merge pull request #117 from gthb/add-help-note-about-config-gotcha

Add note in help about restart and config changes
Add notes on installation and running.

Add a note on distribution packages of Supervisor.
Reference the contributed initscripts for automatic startup.
Fix fumble that deleted a headline.
Put all change history into a single file