Fix byte order used to interpret strings in Matlab reader

I've left a big-endian Matlab file that exhibits the problem at  http://dl.dropbox.com/u/573515/foo.mat. You can verify that the matrix at the "strings" key is read and displayed correctly by Matlab (it contains the strings "hello" and "world"), but scipy.io outputs it seriously wrong:

    import scipy
    import scipy.io
    
    d = scipy.io.loadmat('example.mat')
    
    print repr(d['strings'])

Output:

      array([[ array([u'\ud7c0\udc00\u17c0\udc00\ud7c0\udc00\ud7c0\udc00\u97c0\udc00'],
          dtype='>U5')],
           [ array([u'\u97c0\udc00\u97c0\udc00\u57c0\udc00\ud7c0\udc00\ud7c0\udc00'],
          dtype='>U5')]], dtype=object)

Which happens because:

    np.ndarray(shape=[1, 5], dtype=np.dtype('>U1'), buffer =np.array(u"hello", dtype='U'), order='F')
    array([[u'\ud7c0\udc00', u'\u17c0\udc00', u'\ud7c0\udc00', u'\ud7c0\udc00',
            u'\u97c0\udc00']], 
          dtype='>U1')

But:

    np.ndarray(shape=[1, 5], dtype=np.dtype('<U1'), buffer =np.array(u"hello", dtype='U'), order='F')
    array([[u'h', u'e', u'l', u'l', u'o']], 
          dtype='<U1')