feature start: Fail if the story branch exists

There were several questions that needed a clear answer:

  1) What bases are allowed for feature start?

  2) When exactly do you use feature start and when feature checkout?
     What to check during feature start, namely do we check remotes?

This patch answers as follows:

  1) default or any release branch. When you start a story from a release
     branch, it is assigned to that release in Pivotal Tracker immediately.

  2) feature start will not offer stories whose branches exist either locally
     or remotely. It will skip stories that are assigned to a release as well.

     Since release start uses similar code paths, it as well checks remote refs
     from now on before the branch is created.

     To make the experience more consistent, feature list and feature checkout
     were extended to work well with remote branches connected to stories as
     well. The original implementation was based solely on local branches, which
     was not optimal. feature checkout now works much like git checkout, in fact
     it calls it, it just makes it possible to just use prefixes instead of full
     branch names.

Change-Id: I3bae5b343de1089c801d04671efeb9d4095d2e31
Signed-off-by: Ondrej Kupka <ondra.cap@gmail.com>