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.
But this is the oposite to git implementation, that does:
* `allow_empty=True`: do the commit
* `allow_empty=False`: warn + return None

In mercurial it should better do:
* `allow_empty=True`: raise `RepositoryError` by unsupported operation or warn + return None, unless branch doesn't exist, that then mercurial can do the commit.
* `allow_empty=False`: warn + return None