* snakemakelib/backend.py: add since global config must be stored in backend
* snakemakelib/config.py: configuration base classes and utilities
* test/test_config.py: test configuration functionality
* snakemakelib/config.py: update BaseConfig class to make sure subsections are also BaseConfig instances. Add functions from utils.py.
* snakemakelib/utils.py: move config related functions to config.py
* test/test_config.py: add tests for creating and setting config instances
* test/test_config.py: Add tests for updating BaseConfig and updating SmlConfig
* snakemakelib/config.py: make update_sml_config recursive and check for types of custom config
* snakemakelib/config.py: Refactor module. Make use of global statement to access global configuration variable in routines.
* test/test_config.py: add tests for sml_config. add init_sml_config to clear global init variable.
* setup.py: add sphinx
* rules/bio/ngs/tools/samtools.rules: update import statements
* test/test_config.py: Add get_sml_config for assert statements
* snakemakelib/config.py: Change return types and add get_sml_config
Updated rules to comply with new config format
Delete obsolete variables
Merge branch 'feature/sml_config' into develop