release stage: Actually release the stories

release stage is now actually releasing the affected stories, which is
what was forgotten in the original implementation of release stage.

The command was also a bit refactored and improved. The push step is not
the last step any more, the story release step is the last step now. In
case there is an error in the issue tracker release step, the user is
asked to fix the inconsistencies manually. This is easier than rolling
back after failing to push. And the API calls should mostly work just
fine, all conditions are checked before the push, so the last them is
just about performing the API call to modify the stories.

Change-Id: e61190c344
Story-Id: SF-78
git: Pull "unassigned" Story-Id value into const

Make this special Story-Id tag value a const, not just a string
hard-coded throughout the code base.

Change-Id: c252361293
Story-Id: SF-77
jira/client: Parse JIRA error message properly

Story-Id: SF-90
Change-Id: e125b18c86
Bump version to 0.5.0

Story-Id: unassigned
Change-Id: e83a4430bf
jira/api: Be more clever with JIRA API errors

In case some of the issue IDs in listStoriesById is not found, return at
least the issues that were found together with the error. This means
that it is now possible to do something with the partial result in case
that err != nil && len(issues) != 0.

Change-Id: 06acda1b15
Story-Id: SF-77
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