Logic programs with propositional connectives and aggregates