Diagnose improvements

I've improved the diagnose module a bit.
- Converted class methods to simple functions
- The `run()` does not get check functions by name anymore (this is a good thing, because we now can define what will be checked ourselves)
- Added more logging
- Added a function to check if a python package or module name is importable
- Removed redundancy by using the diagnose functions in `tts.py`/`stt.py`

I also removed the executable flag and added a `--diagnose` argument to `jasper.py`. Although is debateable (too many arguments? adding more complexity to jasper.py?), I think this will make it a lot easier for users to run the diagnose.
IMHO, it's not very intuitive to look in the client folder and try to execute arbitrary modules (This also goes for `populate.py`, but that belongs to another PR, possibly #128). All important functionality should be available via the main script `jasper.py`. (I'd not consider `client/test.py` important for end-users, so this does not have to be added to `jasper.py`)


The init method of this class is doing work, not just initializing variables with parameter values. This will make it harder to test (we should test this).