Effective Coverage Control for Teams of Heterogeneous Agents