SAT-Based Decision Procedures for Automated Reasoning: a Unifying Perspective