Moved the check for the allowed input formats from `classify_diop()`
to `diophantine()`. This make sense because the verfication of allowed
input formats should be done prior to the classification of the equation.

In [1]: from sympy.solvers.diophantine import *
In [2]: f = symbols("f", cls=Function)

Previously,

In [3]: diophantine(f)
TypeError: unbound method as_expr() must be called with f instance as first arg$

Now,
In [3]: diophantine(f)
TypeError: Equation input format not supported

Also, a test was added in `test_diophantine.py` to check whether the
exceptions are raised when the expected input formats are not found.

Also `Pow` was added to the supported input formats since it is possible
to solve the `Pow` types by `diophantine()`. Eventhough the exponential
diophantine equations are not explicitly supported, simple powers which
can be represented by `Pow` can be solved by `diophantine()` as the input
expression is treated as a `Mul` of (base, exponent) pairs.

In [4]: diophantine(x**y)
Out[4]: set([(0, n₁)])

In [5]: diophantine((x-y)**z)
Out[5]: set([(-t, -t, n₁)])
Update the docstring of `diophantine()` describing the output format
of `diophantine()`