Bug 1385 : Adding support for toString, equals and hashCode for the Typed Interfaces.

Guava's AbstractInvocationHandler indeed handles these missing methods on top of InvocationHander (that we currently use).
But unfortunately, the equals() support in AbstractInvocationHandler is screwed up and doesnt fit our needs.
More to it the invoke() method in AbstractInvocationHandler is declared as final.

Hence have implemented a similar functionality on top of InvocationHandler.

In order to have a proper hashCode and equals for these Typed Interfaces, I had to add these methods to all the
Library schema unTyped classes such as Row, Column, BaseType, etc...

Also added IT to cover these methods.

Change-Id: Ia5c3081ae5ce20b9a8fd6ceaadbfd21145649078
Signed-off-by: Madhu Venugopal <mavenugo@gmail.com>