Implemented `review post` command.

Highlights:
  * Rebases.
  * Checks whether user is on a story branch.
  * Prompts before posting.
  * Posts reviews in parallel.

Change-Id: d4192cc060
Story-Id: 79337172

Addressed review comments.

 * Added `git.ListBranchCommits` function. Extracted private `parseCommitLog`
 function from original `git.ListBranchCommits`.
Added a newline.

Story-Id: 79337172

Change-Id: 0d0f643dd6
Added `Prompt` and `PromptIndex` functions.

Change-Id: b3d876a326
Story-Id: 79415340
Added `Log` function.

Change-Id: 58f1a1456c
Story-Id: 79415340
Updated interface to support starting stories.

Change-Id: 4a04d4aab2
Story-Id: 79415340
Implemented `story start` command.

 * Lists startable stories in PM tool and prompts user to choose one.
 * Creates new branch or checkouts an existing one.
 * Starts story in PM tool.
 * Sets user as the story owner in PM tool.

Change-Id: d1f6b1badd
Story-Id: 79415340
Added `Story.GetReadableId()`.

We’re using it when displaying list of stories to user in feature start. JIRA has more “readable” ids (such as HAB-1) so we’re using those instead of pure numeric ids.

Change-Id: 19ccc2e2af
Story-Id: 79415340
Simplified the FSM.

I figured out we don’t really need a full-fledged JIRA transitioning FSM. We just want to start the stories, stage them and release them.

I conclude having a full fledged FSM would be an overkill for now.

Change-Id: 7e85f9eb78
Story-Id: 79415340
`story start` JIRA support.

Change-Id: 2c08bbe21c
Story-Id: 79415340
JIRA config.

Change-Id: 0a8178e89e
Story-Id: 79415340
hooks/commit-msg: Case insensitive matching

Make the commit-msg hook use case-insensitive matching to find the tags.

Change-Id: ffed748fd1