Automatically validate Charon return codes as part of CharonSession object; raise logging level to WARNING; fix misc bugs

Still have to modify the rest of the code to take advantage of this automatic return code checking (and Exception raising)
Well we're in agreement there, but [`functools.update_wrapper`](https://github.com/NationalGenomicsInfrastructure/ngi_pipeline/blob/devel/ngi_pipeline/utils/classes.py#L16) is supposed to pull `__name__` from the wrapped function and assign it to the wrapper itself. It seems to be doing this inside the wrapper (`__name__` is set correctly inside the `__init__` method) but the `locals()` for the test_classes.py namespace still lists `with_ngi_config` instead so nosetests skips it. Wtf, I say again!