First-order Model Theory