Update gitignore
Improve testing for configuration handling

Other changes include:

* Add args argument to app.init() for testing to pass the script argument to
  argparse.parse_args()
* Change load_configuration() to load yaml object from string only.
* Add load_configuration_from_path() to ease testing.
* More dict key to namespace changes.
* Move root privileges check to config.parse_args(), but it it commented out
  temporarily.
* Disable test_app_init()
* Add test_existing_precheck()
* Create tests/util.py for storing utility functions for testing.
* Add test_load_configuration_from_path()
* Add test_load_configuration()
* Add util.temp_filepath() for creating random temporary directories in /tmp