test_integration.config: Fix crash in to_env when no replica is defined
test_integration.config: Do not save the input environment

Using the input environment saved in self._session_env
outside of the config loading meant that methods of
configuration other than environment variables wouldn't
be possible.

Restructure the roles/extra_roles to not depend on _session_env.

Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
test_integration.config: Use a more declarative approach to test-wide settings

The list of options was duplicated too many times. Consolidate.

Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
test_integration.config: Do not store the index in Domain and Host objects

The index is a detail of the environment variable method of
configuration, it should only be used there.
test_integration.config: Load/store from/to dicts

Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
test_integration.config: Add environment variables for JSON/YAML

Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
ipa-test-config: Add --json and --yaml output options

Also update the man page.

Part of the work for: https://fedorahosted.org/freeipa/ticket/3938
test_integration.config: Convert some text values to str

When loading from file, some strings are loaded as unicode,
which would throw off assert_deepequal.
Add tests for integration test configuration