Add branches of LambertW

fixes #7105
fixes #5215
Consolidate all warnings.simplefilter calls to sympy.utilities.exceptions

This is the file where SymPyDeprecationWarning is defined, so the filter will
always be set when that warning is used.

This also changes the warning to once, rather than always, which matches the
default Python warning behavior.

This does cause the SymPyDeprecationWarning to show, which by default it
wouldn't, because Python hides DeprecationWarnings by default.  This is
intentional, as we want our users to know about deprecated behavior.
Add a callback function so that -k can take a variable number of
arguments.  Fixes #5228
Merge pull request #8073 from asmeurer/deprecation-warnings

Consolidate all warnings.simplefilter calls to sympy.utilities.exceptions
do not exec file if none of the kw is/are present

Also, in case None is the value for kw, make it a tuple
Merge pull request #8068 from skirpichev/7105-LambertW-branches

Add branches of LambertW
Merge pull request #1 from smichr/optparse

do not even exec file if the kw is not present
Merge pull request #8087 from pbrady/optparse

Allow -k to take a variable number of arguments
Evaluate an apropriate number of terms in Mul._eval_nseries (fix #6179)
A better workaround for termination of Mul series like (2*exp(O(x))).nseries(x)
fix tests
Clenup test_nseries.py: remove redundant Order symbol specifications
Fix test for _eis (comming from merge)
Comment out XFAIL'ed Wester test X12 (it hangs)
skip X12 test, don't comment out
Check res.getO() != None
XXX: fix test_issue_4503