Factor out business logic of `shiv` command to facility direct use in python scripts.
I'm moving to shiv from a home-grown zipfile packaging script. Really enjoy the simplicity and control of this project, but wanted a way to reuse the logic in main() of cli.py without launching a sub-process or unwrapping the decorations made by click.
This PR factors out the the console commands into its own module and leaves main() as a regular function in cli.py.
python -m shiv and python -m shiv.cli should still reference the click command.
Users may find their scripts breaking if they depended directly on shiv.cli.main, but I see it's been left out of the Shiv API in the documentation. Do let me know if it's a desire to keep main() functionally unchanged (or if the change should be mentioned in the docs) and I'll work around that.
Tests passing on my machine and API docs updated.
Best, Amund
docs check failing due to :option:`--python` which does not resolve. :option:`shiv --python` however, does.