Add support for commit attributes

Commit objects support extended attributes using '-A' or '--attr' flag to
add them with 'git commit' command. Also, commit attributes are obtained
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.