Fix issue 3649

The problem was that Integral._eval_subs was returning an instance of
Integral, so that NonElementaryIntegral.subs() was returning an instance of
Integral, and hence failing an isinstance check. I changed all methods of
Integral to use self.func(*args) instead of Integral(*args).  But we need to
audit all of SymPy and make sure we are doing this everywhere.  See issue
3652.
Merge pull request #1800 from asmeurer/integral_superclass

Fix issue 3649