defining hashable content for objects with bound symbols

define hashable content for Subs, Lambda, Integral, Sum and Product

The new definition allows expressions that would give identical
results (indepenedent of bound variables) to compare the same.

Issues [2440](https://code.google.com/p/sympy/issues/detail?can=2&q=2440) and  [3775](https://code.google.com/p/sympy/issues/detail?can=2&q=3775)


Lambda also now works with Symbol, not Dummy  [issue 2442](https://code.google.com/p/sympy/issues/detail?can=2&q=2442)