Bears batter Matt Lamb fired his third first-class century, striking 155 in 293 balls (16 fours) against Northamptonshire at Edgbaston.