Updating classes to use __new__ instead of init
Enable if x.is_positive is branch in series()
Workaround in Function._eval_nseries to prevent some substitutions in the Derivative

    For example: Subs(Derivative(f(x), x), x, 0).subs(x, y) ->
                 Subs(Derivative(f(x), x), (x,), (y,))

    This is a fix for failed test:
    File "/home/sk/src/sympy/sympy/series/tests/test_series.py", line 86, in test_879
      assert f(x).series(x, 0, 3) == \
Less naive lseries/nseries methods for Integral

    Detect cases, when we should expand on the integration
    variable (dummy symbol).
Correct assumptions for auxilary symbol xpos: it should be is_bounded as well
Drop unused skip_abs option for Expr.compute_leading_term and calculate_series

    This was introduced in 89c7626 and then this option was unused since 9c46974
Drop obsoleted docs about skip_log option of compute_leading_term()

    This was replaced by logx option in 9c46974d
Issue 4009: Fix predicate detection in simplify_logic.

Previously, simplify_logic would assume all free symbols were predicates, and
would construct a truth table based on results of substituting True/False for
each.  This would sometimes result in incorrect simplifications when Boolean
structures were made containing other expressions.  Now, it takes anything
that is not a BooleanFunction as a predicate, then simplifies the predicates
before reassembling.
Add optional simplify parameter to simplify_logic.

Specifies whether to apply recursive simplification to predicates contained
within the boolean function being simplified.
Adding Weyl group functionality
Use xreplace instead of subs in simplify_logic.

Subs had an issue where one predicate of a boolean function was contained
entirely within another predicate of a boolean function (eg. predicates x,
and x+1).  The smaller predicate would sometimes be substituted before the
larger, causing the larger to not be substituted, and potentially causing
the simplification to produce incorrect results.  This appeared to happen
on only some invocations of the interpreter: the added test would sometimes
pass and sometimes fail.

Xreplace instead searches for all predicates simultaneously, matching the
largest predicate that it can in any expression, thereby preventing this
issue.
Adding docstrings and doctests
Fixing an error and adding test_args
Fixed trailing whitespaces
Merging with master
Merged
Adding test_args
expand_mul in add.py
expand_mul in mul.py
Indentation Correction