Parent groups work like smart groups. Can now use parent group as membership group

It seems to me that a parent group's membership is made up in the same way that a smart group's is, using `civicrm_group_contact_cache`. Altered the Utils class to look out for the group's `children` field - if this is truthy then it has children and therefore membership should be found from the cache table.