Fixed-point extensions of first-order logic