Fixing Git commit, as far as it should work as git commit -a.

In order to maintain the same behavior between mercurial and git, the commit should do a "git commit -a" but it was not.

I thought in implement it as optional, but mercurial does not have an index, so I've had to implement one for it and I think it is too much work right now.

So, now it works as documentation said it should.
Not really.

The `allow_empty` has no sense with mercurial, since mercurial does not allow empty commits. So, I documented it as "Advise: allow_empty not commit on non-changed working copy, but it won't raise an error.". So, the intention is:

- `allow_empty=True`: do nothing and return None.
- `allow_empty=False`: raise exception.