test AsyncResult.get_dict with single results and invalid input
fix AsyncResult.get_dict for single result

avoids issue with LoadBalancedView, client[0], etc.

Also cleanup the multiple-key test while I'm there,
because it was gross.

closes #3646
avoid double-iteration over engine IDs in get_dict
Merge pull request #3649 from minrk/get_dict_single

fix AsyncResult.get_dict for single result

and add tests for single-result and invalid input (multiple results on one engine).

closes #3646