[DO NOT MERGE] fixes #3790 - Adding functionality to support isolate_namespace engines

DO NOT MERGE
This PR codes code from @ehelms PR #1071

The goal was to eliminate the need to pass :url_hash by the isolated engine and instead build the path based on the menu name using the named path helpers.

example:
```ruby 
      Foreman::Plugin.register :new_system do
        menu(:top_menu, :hosts, { :caption => 'List of Hosts', :parent => :monitor_menu, :first => :menu,
                  :engine_name => 'main_app' }  )
        menu(:top_menu, :systems, { :caption => 'List of Systems', :parent => :infrastructure_menu, :first => :menu,
                 :engine_name => 'katello'  } )
      end
```