Added FirstOfGroupUDAF

This UDAF returns first element in the aggregation group.

select message_id, group_first(user_id) as user_id, group_first(service_id) as service_id, count(*) as engagement_count from messages group by message_id;