Improved sudo management

* Set the puppetrun sudo command to match the user specified using puppetrun_user parameter
* Only manage the sudo rules if both puppetca and puppetrun are enabled

This is a refactor of #101 

The spec tests fail on my desktop, could use second pair of eyes as it appears like it shouldn't be failing.
tag and runas_user need to be specified the other way around, it's causing an error when you apply it:

<pre>
[ INFO 2014-10-28 14:47:29 verbose]     ({ /runas_user/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ }({ /runas_user/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ })* | { /ru
nas_group/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ }({ /runas_group/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ })* | { /runas_user/ = /[^\001-\004\t\n #,:=\\][^\001-\
004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ }({ /runas_user/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ })*{ /runas_group/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t
\n #,:=\\]/ }({ /runas_group/ = /[^\001-\004\t\n #,:=\\][^\001-\004\n#,:=]*[^\001-\004\t\n #,:=\\]|[^\001-\004\t\n #,:=\\]/ })*)?{ /tag/ = /(NO)?(PASSWD|EXEC|SETENV)/ }*
[ INFO 2014-10-28 14:47:29 verbose]   with tree
[ INFO 2014-10-28 14:47:29 verbose]     { "tag" = "NOPASSWD" } { "runas_user" = "root" }
[ERROR 2014-10-28 14:47:29 verbose]  /Stage[main]/Foreman_proxy::Config/Augeas[sudo-foreman-proxy]: Could not evaluate: Saving failed, see debug
</pre>