Initial abstraction for VCS

The code is not yet used yet, it's just a draft of how the class might
look like.

See issue #511 and #126

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

Signed-off-by: Michal Čihař <michal@cihar.com>
Properly handle when subclass does not implement something

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

Signed-off-by: Michal Čihař <michal@cihar.com>
Try using download cache for pip

Signed-off-by: Michal Čihař <michal@cihar.com>
Disable Opera testing for now, seems to cause troubles

Signed-off-by: Michal Čihař <michal@cihar.com>
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>
Translated using Weblate (Arabic)

Currently translated at 0% (0 of 0)

[ci skip]

Created new translation.
Fix git attributes filename typo
Merge pull request #512 from stbuehler/patch-1

Fix git attributes filename typo
Merge branch 'master' into bootstrap