Fix Intersection Complement simplification
sets: added tests to imporove the coverage

* The overall coverage of sets module is increase to 96% from 93%
    * sets.py:: now: 96% earlier: 93%
    * fancysets.py:: now: 97% earlier: 90%
Merge branch 'complement_fixes' into solver_refactor

* complement_fixes:
  sets: added tests to imporove the coverage
  Fix Intersection Complement simplification

Conflicts:
	sympy/sets/tests/test_sets.py
Fix solve_univariate_solver if f.is_Mul

Before this commit the solver assumed the solution to f(x)*g(x) == 0 is same as
the union of solutions of f(x) == 0 and g(x) == 0. This is not true in general
since it is not necessary that the solutions of f(x) are also a part
of the domain of g(x). A simple case can be x/log(x). The problem is resolved
by using the technique only if the given funtion is bounded if the input
variables are bounded.