Merge pull request #8531 from sivel/rax-cdb-dedupe-docfrag

rax_cdb* modules: Dedupe code and switch to shared doc fragments
Issue 8502: Fixed bug where failed when permissions weren't specified.
Optimise string handling in ansible.utils._clean_data
PEP8 Compliant except needed long lines and better exception handling
Fix copy/paste error
Test escaping strings with two variables
Switch cStringIO to StringIO for unicode support

The performance difference isn't too bad
Pre-load whole string and use seek to alter tags
apt_repository: Check if key already exists before trying to add it for a speed increase
Merge pull request #8544 from Tenzer/faster-apt_repository

apt_repository: Check if key already exists before adding it
Merge pull request #8532 from piffey/8502_acl

Issue 8502: Fixed bug where failed when permissions weren't specified.
Correct parser to ignore escaped quotes when not in quotes already

Related to #8481
Catch task parameter splitting errors nicely

Fixes #8481
Merge branch 'optimise_utils_clean_data' of https://github.com/leth/ansible into leth-optimise_utils_clean_data
Merge branch 'leth-optimise_utils_clean_data' into devel
Unquote lines that were quoted for safety during eval in lineinfile

Fixes #8535
Merge
Merge
WIP on the re-implementation of fact caching and various backends.
Implement fact cache flushing alongside a command-line argument to invoke it.