(PUP-2909) enable static checking with rubocop 

This enables rubocop with a few selected checkers (cops). These selected allowed finding a few errors which are also fixed along with this checkin. The enabled verifiers include:

Lint/UnreachableCode
Lint/ConditionPosition
Lint/UselessComparision
Lint/LiteralInterpolation

These style checkers were found to be triggered on a very small number of problems which were found to be real problems. I have also marked a few checkers as 'MAYBE' which I feel might help puppet development, but as of now results in a large number of warnings. The rest of the checkers should only be enabled after verifying that they are indeed useful for puppet codebase.
@Sharpie You were right, I found these switching on AndOr and looking for the #2722 pattern

```
diff --git a/lib/puppet/pops/binder/config/binder_config.rb b/lib/puppet/pops/binder/config/binder_config.rb
index 3e83e4a..4f8efb1 100644
--- a/lib/puppet/pops/binder/config/binder_config.rb
+++ b/lib/puppet/pops/binder/config/binder_config.rb
@@ -84,7 +84,7 @@ module Puppet::Pops::Binder::Config
       end
 
       unless diagnostics.errors?
-        @layering_config   = data['layers'] or default_layers
+        @layering_config   = data['layers'] || default_layers
         @scheme_extensions = (data['extensions'] and data['extensions']['scheme_handlers'] or default_scheme_extensions)
       else
         @layering_config = []
diff --git a/lib/puppet/provider/group/windows_adsi.rb b/lib/puppet/provider/group/windows_adsi.rb
index c6db2af..e996dc6 100644
--- a/lib/puppet/provider/group/windows_adsi.rb
+++ b/lib/puppet/provider/group/windows_adsi.rb
@@ -17,7 +17,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
 
     # Cannot use munge of the group property to canonicalize @should
     # since the default array_matching comparison is not commutative
-    should_empty = should.nil? or should.empty?
+    should_empty = should.nil? || should.empty?
```