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)