Support DISTINCT modifier in aggregate functions

For example:
(select$ [[count distinct :species]] :from :pet) =>
"SELECT COUNT(DISTINCT species) FROM pet;"