Extended device autodetection to work with --to_product.
Extended device autodetection to work with --to_product.

This both fixes an incorrect behavior where --to_product would unsafely
lead to using a target device not intended to by the user; and reuses
the existing logic for device autodetection to work with provided
product strings.  As a result, it is easier to find devices, and the
script's behavior is more consistent as far as device detection and
selection.  This preserves the pattern matching on product string (now
properly highlighted in usage text and inline comments).

BUG=None
TEST=Ran script with various flag combinations (--to, --to_product),
product strings,  and devices connected.

Change-Id: I80bfca086029555853a680e7c97251b11adc912e
Reviewed-on: https://gerrit.chromium.org/gerrit/15757
Reviewed-by: Richard Barnette <9e7d66387742bf40b0d2548ef2b93e7c522ca0eb@chromium.org>
Commit-Ready: Gilad Arnold <a0dab390cfdc583218cee97b60c5c4eb1be355d2@chromium.org>
Tested-by: Gilad Arnold <a0dab390cfdc583218cee97b60c5c4eb1be355d2@chromium.org>

fivethreeo/scripts,andrejro/coreos--scripts,glevand/coreos--scripts,endocode/scripts,smilart/scripts,coreos/scripts,zhang0137/scripts,trnubo/scripts,andrejro/coreos--scripts,endocode/scripts,marineam/coreos-scripts,gtank/scripts,sigma/coreos-scripts,gtank/scripts,nicescale/scripts,sigma/coreos-scripts,mjg59/scripts,nicescale/scripts,BugRoger/scripts,bcwaldon/coreos-scripts,vmware/coreos-scripts,bcwaldon/coreos-scripts,marineam/coreos-scripts,fivethreeo/scripts,sigma/coreos-scripts,mjg59/scripts,BugRoger/scripts,mischief/scripts,zhang0137/scripts,bcwaldon/coreos-scripts,nicescale/scripts,andrejro/coreos--scripts,crawford/scripts,coreos/scripts,endocode/scripts,mjg59/scripts,crawford/scripts,mischief/scripts,zhang0137/scripts,vmware/coreos-scripts,trnubo/scripts,vmware/coreos-scripts,trnubo/scripts,marineam/coreos-scripts,BugRoger/scripts,fivethreeo/scripts,crawford/scripts,gtank/scripts,smilart/scripts,glevand/coreos--scripts,smilart/scripts,mischief/scripts