Enhance with multiple new features

Implemented a bunch of enhancements to the base sendf package. Namely:

- Command line option to skip upnp step
- Use the -o option to name the file when serving it
- Have the OS select a random port using socket.bind(0)
- Add an option to select the compression method
- Add an ability password protect the sent file using encrypted zip