Add magit-completing-read wrapper for helm

Slightly improves completion for helm users, with a much simpler completion function. Also allows for helm-dependent functionality to be used in the future.

If you're wondering why I don't check `(consp choices)`, see this (from `helm-comp-read` and `all-completions`):
>- COLLECTION can be a list, vector, obarray or hash-table.
  It can be also a function that receives three arguments:
  the values string, predicate and t. See `all-completions' for more details.

>If COLLECTION is an alist, the keys (cars of elements) are the
possible completions.  If an element is not a cons cell, then the
element itself is the possible completion.

I verified the behaviour by running `magit-create-branch`, which displays the parent branch choices correctly, unlike the ido function with the consp check removed.

Byte-compilation is happy, but I couldn't run the tests due to a dependency issue on `git-rebase-mode`, which I tried reinstalling without success. I can `(require)` it just fine.