implement logging instead of print statements

This pull request replaces most print statements with the built-in logging functionality. This allows the user control over what is actually printed to the console: For example, running

```python
import logging
logging.getLogger().setLevel(logging.INFO)
```
will show INFO level messages and all more severe messages (WARNING, ERROR,  CRITICAL), while the ``logging.WARNING`` level will not show the INFO messages. By default, the WARNING level is active and thus INFO and DEBUG messages will not be shown.

Additionally, using the logging module allows for easy saving of logs to files, etc. The actual format of the logging messages can also be customized. All settings can be set both programatically and using config files (INI, JSON, YAML), but everything is left at defaults for now.

I have not touched any of the print statements where some kind of ``debug`` or ``verbose`` flag controlled their behaviour. I also did not touch print statements in ``if __name__ == '__main__'`` sections.

I also fixed two missing ``import sys``, which is not related to logging, but were so small and safe edits that I did them on the go.
I strongly disagree. If it can't find any local data, it will check on the sftp server. Unless the user is plotting the same data over and over again without emptying their /tmp folder (which is normally emptied every reboot), this warning will get shown all the time. Warnings should only be shown if something unexpected (for the user) occurs, and having to fetch data from VT servers is not unexpected (as indicated above, I would say it's _expected_ most of the time).

I'll be honest - constantly having this message printed to the console was one of the few examples that drove me to implement the logging module in the first place. Still, my reasoning above stands on its own and have nothing to do with personal feelings.