Update main.py

* removed manual password entried and replaced it with getpass
* changed the timer to .20 instead of 1 second while sending commands down the channel
* added error detection by using the socket gaierror. This error is raised if the IP or FQDN provided cannot be connected to by the program.
* added an alternate method to generate-config (currently commented out) -> this uses a generator exp instead of a list. If there are large amounts of config generated then this will perform much better. 
* modified the device_file parsing to check for duplicates and remove them from the list of devices to be processed.
* added a 'failed_devices' tracker that will keep track of any failed devices (the program could not connect to the IP or FQDN and the error was raised) and will report them at the end of the program execuition.
* an 'ERROR' log is configured to display the failed device during runtime.