Improvements to SolveArgumentParser

    - Refactor SolveArgumentParser to move logic out of global context
    - Fix default to shell with optional arguments case
    - Fix pylint issues