Using selectors to set ensure

This refactors it a lot more nicely than I'd done previously. However, checking against `undef` I've found can be a little surprising (for one, you have to use the default, you can't pass `undef` as a value, at least not from Hiera), so instead of `undef`, I'm using the boolean `false`, which can be passed around safely.

I tested this on my Vagrant box, it properly removes the settings when the corresponding variable is `false`. Much cleaner. Thanks for turning me on to the proper use of `dovecotcfsingle` (and more generally, Augeas).