fixes #4794 - precompile filters.js and taxonomy_edit.js files
fixes #4776 - support session[:expires_at] for api requests

There are situations where the UI needs to invoke requests
on the API controllers; therefore, we need to ensure that
the session expiration accounts for them.  This is a common
for plugins, such as Katello, which leverage the
APIs extensively to support both the web UI and CLI.

With these changes, if an API request is received with
session[:expires_at], it will be evaluated and updated by the
server.  This will be the case for requests from the web-UI.

If an API request is received without session[:expires_at],
no evaluation or updating of an expiration timer will
be performed.  This latter case is the existing behavior
for the API requests (e.g via API or CLI) and will continue
to be supported.
Fixes #4884 : remove duplicate slashes from the gravatar url

The issue is that request.protocol returns http:// instead of http. The code assumed no trailing slashes
Fixes #4679 - Downcase fqdn to match Puppet SSL certs casing
fixes #1804 - find hosts through nested hostgroups on puppet class search
refs #2189 - update host group parameter search tests
Fixes #4927 - Extend foreman-debug to look for extensions provided by plugins.

This assumes a directory called /usr/share/foreman/script/foreman-debug.d.
Any *.sh file in there is sourced. The expectation is that plugins would put
files into this locations and can add files or commands as necessary
fixes #4800 SLES special handling in facts parser
Fixes #4851: a parametrized scope SmartProxy.with_features replaces feature-specific scopes that were generated during SmartProxy class loading