various fixes for shape inference script (#2124)
* use dilations for computing effective kernel shape for conv/pool ops
* when auto_pad is 'VALID', total_pads should be empty
* added support for ArrayFeatureExtractor and ZipMap
* check out_shape only if the output has shape, i.e. output is of TensorType
or SparseTensorType