Generalized Semantics and Abstract Interpretation for Constraint Logic Programs