chg: dev: more information in ``ShellError`` exception. @wip
fix: better support of exotic features of git config file format. (fixes #4)

git config file format allows ambiguous keys:

    [a "b.c"]
        d = foo
    [a.b "c"]
        e = foo
    [a.b.c]
        f = foo

Are all valid. So code was simplified to use directly ``git config``.
This simplification will deal also with cases where section could be
attributed values:

    [a "b"]
        c = foo
    [a]
        b = foo

By avoiding to parse the entire content of the file, and relying on
``git config`` implementation we ensure to remain compatible and not
re-implement the parsing of this file format.
chg: random cosmetic fixes and a slightly broader test case @minor
fix: doc: typo @minor
fix: doc: remove all reference to ``git-changelog`` (with the dash) to prevent any mistakes. !minor
fix: small adjustements to re-phrasing. @minor
fix: avoid using pipes for windows compatibility and be more performant by avoiding to unroll full log to get the last commit.
chg: dev: cosmetic spaces corrections @minor
chg: dev: move the reversing python code towards git command line code.

Actual performance improvement is... un-noticeable. Questioning the if this
is really a good patch because it introduce usage of advanced (recent) options
new: correct typo in doc and in error message. Added an hint when ``gitchangelog.rc`` not found. !minor
chg: dev: small modification around usage and help message variables. @minor
new: remove user or system wide configuration file lookup.

This follows reflexion that you build a changelog for a repository and
that the rules to make the changelog should definitively be explicit and
thus belongs to the repository itself.

Not a justification, but removing user and system wide configuration files
also greatly simplifies testability.
new: use a standard formatting configuration by default

A default `standard` way of formatting is used if you don't provide
any configuration file. Additionaly, any option you define in your
configuration file will be added "on-top" of the default configuration
values. This can reduce config file size or even remove the need of
one if you follow the standard.

And, thus, you can tweak the standard for your needs by providing only partial
configuration file. See tests for examples.
new: remove optional first argument that could specify the target git repository to consider.

This is to remove duplicate way to do things. ``gitchangelog`` should be run
from within a git repository.

Any usage of ``gitchangelog MYREPO`` can be written ``(cd MYREPO;
gitchangelog)``.
chg: updated summary of help message !minor
new: add ``init`` argument to create a full ``.gitchangelog.rc`` in current git repository.
new: add utf-8 encoding declaration !minor
new: dev: added a complete reference test.
new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor

This decision is an effort to get closer to GIT tools philosophy and
implementation. It will allow to stick closer to streams of data from
git commands, and these command should run faster.

To be noted that this particular diffset doesn't bring noticeable
performance improvements.
chg: dev: refactored out the formatting characters from GIT.

This is to prepare to clean __init__.py from any initilisation process.
This will path the way to permit GitCommit being initilised with full
values in the ``git log`` scenario coming in a few commits.