Proofs, Circuits, Communication, and Lower Bounds in Complexity Theory