H-Bridge motor with Arduino
There is a lot of work that goes into H-bridge design. For a low power design, there's a fair number of ICs to get you started. The one I started with was the L239D. It implements the four transistor design you show and it also includes the very critical flyback diodes that are missing from your design. It also handles the separate 9 volt motor power and the 5 voltage logic.

http://www.ti.com/lit/ds/symlink/l293d.pdf