SQL improvments for paramaters in host edit section refs #2003
fixes #2003 - Improve Parameterized classes values retrieval time

This patch adds a new classification class which
tries to fetch all values at once

The initial implementation cared about a name / value at a time
however getting all at once (e.g. during a puppet ENC call) is much more
common.

This patch creates in memory tree of all possible values and process
them in memory instead of asking the database for each possible match.
fixes #2004 - Location and Orgs are visible in the host show page even when its disable
Fix the path for create medium API
fixes #1937 - Foreman doesn't work well when run on subpath

* request_url is not enough to pass form controller to tftp
  Other variables (like script_name) need to be used from
  controller.url_options to properly generate the path in the PXE template.
* use rails helper to get the path to noVNC source
  Hardcoded value makes problems when running Foreman from subpath
* helper javascript method for generating path to foreman
fixes #2010 - selecting an org/location does not expire topbar cache
refs #2010, fixes cache issues when selecting an org/location
fixes #2011 - Param Class optimization fails on Postges
support for passing template_kind hash as input parameter during create and update operations
fixes #1994 - set vardir for puppet 3, use --configprint

When running Puppet 3 as a non-root user (i.e. foreman), both --confdir and
--vardir have to be specified as per Puppet #16637, else SSL settings dependent
on vardir will fail.

This adds a new puppetvardir setting used with puppetconfdir, and supports
puppetconfdir being a file or directory due to historic settings.yaml examples.

It now shells out and uses `puppet master --configprint` to retrieve settings
to avoid changes in Puppet settings initialization logic across versions (e.g.
run_mode on Puppet 3).
1.1RC1 released!
fix trend labels for ForemanTrends
Turn off the apipie validations for now

The main reason for the validations to be implemented in Apipie was
the ability to be able to check the documentation against the code:
i.e. it can discover inconsistencies between the documentation and
the actual code that uses the API.

However, it seems, that for now there are some weaknesses in the
implementation. Also the duplication with the ActiveRecord validations
is not helping.

Therefore let's turn the validation off by default and have the issues
fixed outside of production environment.
Merge pull request #286 from iNecas/apipie-validations-off

Turn off the apipie validations for now
fixes #1977 - Don't rely on Puppetversion to determine report version
fixes #1995 - enable param class ENC by default on Puppet 2.6.5+
fixes #2020 - PuppetSetting is an instance, not class
fixes #2021 - run test:lib from test rake task
fixes #1979 Updating puppet:import:puppet_classes for parameterized classes

Puppet import_classes task uses PuppetClassImporter instead of Environment.import_classes which is not available anymore
fixes #1814 - converts sp_* attributes into a BMC interface class

this patch also includes the following

* added a new interfaces table, and STI objects to represent a NIC, BMC
and a bootable interface.
* refactored DHCP/DNS orchestation code, so they can work on the
interface objects and on the primary interface information that still
reside in the hosts table.
* added basic UI for interface selection

this refactor also helps to simply refactoring the host object into
multiple objects.