Fix bind() to allow binding with user-defined types

This fixes type of _n variables for all cases, e.g.:

In [1]: 1
Out[1]: 1

In [2]: %type _1
Int

In [3]: class Foo(a: Int) { def bar(b: String) = b*a }

In [4]: new Foo(5)
Out[4]: Foo@15194a34

In [5]: %type _4
Foo

In [6]: _4.bar("xyz")
Out[6]: xyzxyzxyzxyzxyz

In [7]: object X { class Foo(a: Int) { def bar(b: String) = b*a } }
Out[7]: X$@ae03a4d

In [8]: new X.Foo(5)
Out[8]: X$Foo@6199ffdd

In [9]: %type _8
X.Foo

In [10]: _8.bar("xyz")
Out[10]: xyzxyzxyzxyzxyz