Implement reset/rebase/merge

Signed-off-by: Michal Čihař <michal@cihar.com>
Implement status

Signed-off-by: Michal Čihař <michal@cihar.com>
Implement needs_commit

Signed-off-by: Michal Čihař <michal@cihar.com>