title: NumPy recfunctions join_by TypeError
body: <p>I encounter a TypeError when I attempt to join a 'uint16' field to a structured array in NumPy 1.11 or 1.12 (Python 3.5).</p>
  
  <pre><code>import numpy as np
  from numpy.lib import recfunctions as rfn
  foo = np.array([(1,)],
                 dtype=[('key', int)])
  bar = np.array([(1,np.array([1,2,3]))],
                 dtype=[('key', int), ('value', 'uint16', 3)])
  rfn.join_by('key', foo, bar)
  </code></pre>
  
  <p>This is the error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/home/user/anaconda3/lib/python3.5/site-packages/numpy/lib/recfunctions.py", line 986, in join_by
      output.sort(order=key)
    File "/home/user/anaconda3/lib/python3.5/site-packages/numpy/ma/core.py", line 5420, in sort
      sidx = self.filled(filler).argsort(axis=axis, kind=kind,
    File "/home/user/anaconda3/lib/python3.5/site-packages/numpy/ma/core.py", line 3668, in filled
      fill_value = _check_fill_value(fill_value, self.dtype)
    File "/home/user/anaconda3/lib/python3.5/site-packages/numpy/ma/core.py", line 470, in _check_fill_value
      fill_value = np.array(_recursive_set_fill_value(fill_value, ndtype),
    File "/home/user/anaconda3/lib/python3.5/site-packages/numpy/ma/core.py", line 436, in _recursive_set_fill_value
      output_value.append(np.array(fval, dtype=cdtype).item())
  TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
  </code></pre>
  
  <p>The same problem does not occur if I use a 'float16'.</p>
  
  <pre><code>import numpy as np
  from numpy.lib import recfunctions as rfn
  foo = np.array([(1,)],
                 dtype=[('key', int)])
  bar = np.array([(1,np.array([1,2,3]))],
                 dtype=[('key', int), ('value', 'float16', 3)])
  rfn.join_by('key', foo, bar)
  </code></pre>
  
  <p>Is this just a bug? Or is there some way to prevent this problem?</p>