Changed the `diophantine()` function so that it now respects the assumptions
imposed on the symbols. Originally the issue was raised in a so question found
in

http://stackoverflow.com/questions/23301941/how-can-i-declare-natural-symbols-with-sympy

and reported as SymPy issue #7444 by Aaron.

A similar approach as in `solve` is carried out to check for the assumptions.
Each symbol's assumptions are tested against the value returned by the
`diop_solve()` for that variable using `check_assumptions()`.
Remove an unnecessary blank line
Replace `Integer=True` with `integer=True`
Remove unnecessary lines in test case
Add a new test case
Check that expr is Expr before matching it

Fixes issue #2711
Fix bug in manualintegrate u-substitution

- New integrand will not contain original variable of integration
- Simplify and correct calculation of 'constant'
Don't include DontKnowRule in AlternativeRule unless necessary
Use TrigonometricFunction instead of listing trig functions
Further simplify manualintegrate u-sub heuristic
Add test for manualintegrate u-sub heuristic
Merge pull request #7459 from lidavidm/fix_2711

Fix #2711
Merge pull request #7448 from thilinarmtb/Filter_diophantine_solutions_using_assumptions_issue_#7444

Filter diophantine solutions using assumptions issue #7444