Computation with Artificial Spin Ice: Nanomagnetic Logic and Monopole Circuits