Convex Programming Upper Bounds on the Capacity of 2-D Constraints