Implemented heuristics with the assumptions on xi and eta
1] xi = 0 2] eta = f(x) + g(y)
2] eta = 0 2] xi = f(x) + g(y)
Implemented abaco2_similar hint

1] It assumes xi = f(x), eta = g(x); xi = f(y), eta = g(y)
2] Corrected bug in NotImplementedError
3] Corrected minor bug in checkinfsol
Implemented abaco2_unique_unknown hint

1] Extended infinitesimals and checkinfsol for cases where the ODE
is not explicitly in the form a*df + b
2] Implemented abaco2_unique_unknown hint which assumes presence
of unknown functions and non-integer powers,
xi = f(x), eta = g(y); xi = f(y), eta = g(x)
Implemented the following heuristics:
1] General case for the unique abaco2 heuristic
   xi = f(x); eta = g(y)
2] Linear heuristic
   xi = a*x + b*f(x) + c; eta = f*x + g*f(x) + h
Made the following changes
1] Added docstrings for linear, abaco2_general case
2] Reordered heuristics
Changed .next() to next()
Made the following changes
1. Wrapped integrate with NotImplementedError
2. Used islice
3. Replaced nested if
4. Used continue
Added XFAIL test for Kamke ODE
Merge pull request #2308 from Manoj-Kumar-S/heuristics

Heuristics, for assumptions on xi and eta