title: Stacking numpy recarrays without losing their recarrayness
body: <p>Suppose I make two recarrays with the same dtype and stack them:</p>
  
  <pre><code>&gt;&gt;&gt; import numpy as np
  &gt;&gt;&gt; dt = [('foo', int), ('bar', float)]
  &gt;&gt;&gt; a = np.empty(2, dtype=dt).view(np.recarray)
  &gt;&gt;&gt; b = np.empty(3, dtype=dt).view(np.recarray)
  &gt;&gt;&gt; c = np.hstack((a,b))
  </code></pre>
  
  <p>Although <code>a</code> and <code>b</code> are recarrays, <code>c</code> is not:</p>
  
  <pre><code>&gt;&gt;&gt; c.foo
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'numpy.ndarray' object has no attribute 'foo'
  &gt;&gt;&gt; d = c.view(np.recarray)
  &gt;&gt;&gt; d.foo
  array([                  0,     111050731618561,                   0,
                     7718048, 8246760947200437872])
  </code></pre>
  
  <p>I can obviously turn it into a recarray again, as shown with <code>d</code> above, but that is inconvenient.  Is there a reason why stacking two recarrays does not produce another recarray?</p>