Add support for commit attributes

Commit objects have extended attributes using '-A' or '--attr' flag to
add them in 'git commit' command. Also, commit attributes are got using
'%A(...)' format in git log and git show command. Examples:

git commit -m "Commit message." --attr name=value
git log -1 --format="%A(name)" # Shows 'value'.

In addition, documentation and tests have been added.