feature prune: fix a bug and refactor code

Fix two bugs:
* Branches like old_master and blah-blah-stable-blah would never be
  pruned cause they matched the 'grep -v'
* feature prune origin preview wasn't working because it wasn't using
  `--remote` in `git branch`

Do some refactoring to prevent dupication of the "git branch-list and
grep business.