Generalize CONVOLUTION layer to multiple inputs/outputs

This PR generalizes the conv layer to take N>=1 bottom and product N top blobs.  Currently, it requires that all bottom blobs be the same shape as that satisfies my current use case, but it could fairly easily be further generalized to handle inputs of different shapes.