Resolver algorithm tweaks and UI improvements

 - Task resolver no longer throws exception when a recipe has no hosts
 - UI now groups the hosts