Optimization of runtime with many sysctl options + some other minor fixes

 - New native provider sysctl_runtime which is responsible for setting sysctl options in the runtime.
 - Full reload of sysctl(Linux sysctl -p) isn't needed anymore, as sysctl_runtime will always set the right values.
 - Because of missing sysctl reload, no OS check(BSD vs Linux) is needed anymore, as sysctl value setting is everywhere the same: sysctl key=value
 - Auto discovery of sysctl binary in /sbin, /bin, /usr/bin, /usr/sbin by provider
 - Allow to use other target file then the default /etc/sysctl.conf
allow to build it on ruby 1.8.7
allow to build it on ruby 1.8.7
Fixed the sysctl in case of stderr errors

In case of errors and combine of stderr&stdout output of sysctl
the output gets broken and can't be parsed:

kernel.shmmni = 4096
kernel.shmerror: permission denied on key 'vm.compact_memory'
_rmid_forced = 0
kernel.msgmax = 8192
--
net.ipv4.route.gc_min_interval = 0
net.iperror: permission denied on key 'net.ipv4.route.flush'
v4.route.gc_min_interval_ms = 500
--
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.max_addresses =error: permission denied on key 'net.ipv6.route.flush'
 16
net.ipv6.conf.default.accept_ra_defrtr = 1
Merge branch 'exec_optimization' of https://github.com/artem-sidorenko/puppet-sysctl into artem-sidorenko-exec_optimization

Conflicts:
	manifests/params.pp
	manifests/value.pp
cleanup runtime provider

There is no need to implement which lookups on our own in every provider.

Commands defined using the commands API are automatically looked up
using puppet's Puppet::Util.which helper. Which is also what we should
use for our alternative parsing lookup.
cleanup a few things that now became obsolete
Merge branch 'artem-sidorenko-exec_optimization'