title: NumPy array slice using None
body: <p>This had me scratching my head for a while.  I was unintentionally slicing an array with None and getting something other than an error (I expected an error).  Instead, it returns an array with an extra dimension.</p>
  
  <pre><code>&gt;&gt;&gt; import numpy
  &gt;&gt;&gt; a = numpy.arange(4).reshape(2,2)
  &gt;&gt;&gt; a
  array([[0, 1],
         [2, 3]])
  &gt;&gt;&gt; a[None]
  array([[[0, 1],
          [2, 3]]])
  </code></pre>
  
  <p>Is this behavior intentional or a side-effect?  If intentional, is there some rationale for it?</p>