Odd StringMixin behavior
A unicode-indexed frame:

```
In [2]: df = mkdf(3, 2, r_idx_type='u')

In [3]: df
Out[3]:
C0         C_l0_g0 C_l0_g1
R0
7זףאןמםצמ4    R0C0    R0C1
גקךכו441יץ    R1C0    R1C1
35דז5ר13ג2    R2C0    R2C1

[3 rows x 2 columns]

In [4]: <Ctrl-D>

sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
```

If I don't `repr` it, things exit IPython smoothly.

A trivial subclass of `StringMixin` is fine

```
In [1]: class Blob(pandas.core.base.StringMixin):
   ...:     def __unicode__(self):
   ...:         return type(self).__name__
   ...:

In [2]: Blob()
Out[2]: Blob

In [3]: <Ctrl-D> # <- Fine
```

However, when I add unicode characters to the repr, mega-borkage follows:

```
In [1]: class Blob(pandas.core.base.StringMixin):
   ...:     def __unicode__(self):
   ...:         return pandas.compat.u('\u22ee')
   ...:

In [2]: Blob()
Out[2]: ⋮

In [3]: <Ctrl-D> # same traceback as above
```

Looks like could be IPython too. I'll see if I can't track it down.
