releases: Add ListTags function

ListTags lists all release tags in the repository.

Change-Id: 40127a12ef
modules: Add IssueTracker.ReleaseStoriesNotAccepted

This method is supposed to return the stories associated with the given
release that have not been accepted by the client yet.

Also implement the given method for JIRA.

Change-Id: aaf0e27346
release deploy: Bring the command up to date

release deploy does roughly this:

    1) Make sure we are not on the stable branch.
    2) If [-release] is specified, simply reset (git branch -f) the
       stable branch to TAG and push. We are done here.
    3) Otherwise, get the list of releases that happened since the
       current position of the stable branch.
    4) Drop the releases that have not been accepted yet. Cut the list
       at the first release not entirely accepted by the client.
    5) Prompt the user to choose one of the releases.
    6) Mark all affected stories as released.
    7) Reset the stable branch to point to the selected release tag.
    8) Push the stable branch.

Change-Id: 57810f486b
wip [ci skip]

Change-Id: 48171a34b5
hooks/pre-push: Make the hook a bit more clever

Relax the conditions that lead to the commits being pushed to be checked
for Change-Id and Story-Id. The check is actually taking place now only
if there is some other commit with the relevant tag that is an ancestor
of the commit being checked.

This change is introduced to make it possible to start using SalsaFlow
on older projects where the tags are missing and it's not possible to
fix it really.

Change-Id: eba241960e