Adds support for commit attributes.

With this change, git-commit adds --attr <key=value> option to add
attributes to commit objects (they are saved as extra headers).

Example:

$ touch test && git add test
$ git commit --attr my_attr=my_value -m "Commit message."
$ git cat-file commit HEAD
tree f8d069bd1e3c9e203fa4649e74ac22b1ec55ed28
parent 2e763a06c977010355c9166aa072b8db696d639f
author Diego Lago <diego.lago.gonzalez@gmail.com> 1395657006 +0100
committer Diego Lago <diego.lago.gonzalez@gmail.com> 1395657085 +0100
my_attr my_value

Commit message.
$
Adds documentation for 'git-commit --attr'.
Adds support to get commit attrs with git-log.

With this change you can get commit attributes (extra headers)
with --format option of git-log and git-show. Example:

$ git log -1 --format="%h %s / attr=%A(my_attr)"
a1927a1 Commit message. / attr=my_value
$
Documentation for git-log/show --format="%A(...)".