Find all git-refs with desired suffix; choose shortest one

This pull request proposes a fix for https://github.com/opscode/chef/issues/2065

Currently, the output of ```git ls-remote``` is parsed for lines ending with the specified revision. If multiple tags happen to match, the first is returned, which may not represent the desired content.

This change finds all matches, and then returns the match of the shortest length. If the shortest length match does not represent the desired content, then the revision value can be lengthened to uniquely identify the desired content.
Hmm, if such a split is used, would not ```/refs/tags/super-stable/my_tag`` and ```/refs/tags/dev/my_tag``` then be tied? Then again the first in lexical order would be used. Whereas if length is used there is no assumption made about the structure of a ref. I assumed that the use of ```end_with?``` implied a desire to avoid parsing the tag.

In either case (using length, or using split), examples can be constructed that trigger a selection that was not intended. Since split assumes something about the ref structure, I vote for using length.

I think that if there is case where more than element is in the array passed to ```pick_shortest_ref```, some WARN level logs should be made. Do you think this is worth adding?