Make template_ds the only templater

Instead of having to remember when to use which one, rename template_ds
to template and move the last bit of code from template to varReplace
(which gets used for all string replacements, in the end).

This means that you can template any data type without worrying about
whether it's a string or not, and the right thing will happen.
Create Play objects for --list-hosts to mimic actual behaviour

This makes --list-hosts work more like actually running the playbook,
and thus gets the correct hosts with regard to includes and similar.

Fixes #1959.
sysctl was added in 1.0

Fixes #1972.